繁体   English   中英

SQL查询:检索具有不同条件的列

[英]SQL Query: Retrieve columns with different condition

我需要从不同的表中检索具有不同条件的多个列。 我有如下

SELECT
(SELECT COUNT(*) FROM Table1 WHERE Price >= 0 Price < 10) AS 'Group1',
(SELECT COUNT(*) FROM Table1 WHERE Price >= 10 AND Price < 20) AS 'Group2',
(SELECT COUNT(*) FROM Table1 WHERE Price >= 20 AND Price < 30) AS 'Group3',
(SELECT COUNT(*) FROM Table2 WHERE Price >= 0 Price < 10) AS 'Group4',
(SELECT COUNT(*) FROM Table2 WHERE Price >= 10 AND Price < 20) AS 'Group5',
(SELECT COUNT(*) FROM Table2 WHERE Price >= 20 AND Price < 30) AS 'Group6'

只是想知道是否有更好的方法来为上述条件重组更好的查询?

有,

SELECT  SUM(CASE WHEN Price >= 0 Price < 10 THEN 1 END) AS 'Group1',
        SUM(CASE WHEN Price >= 10 AND Price < 20 THEN 1 END) AS 'Group2',
        SUM(CASE WHEN Price >= 20 AND Price < 30 THEN 1 END) AS 'Group3',
        SUM(CASE WHEN Price >= 0 Price < 10 THEN 1 END) AS 'Group4',
        SUM(CASE WHEN Price >= 10 AND Price < 20 THEN 1 END) AS 'Group5',
        SUM(CASE WHEN Price >= 20 AND Price < 30 THEN 1 END) AS 'Group6'
FROM    table2

由J W将table1加到上述精彩查询中。

SELECT  SUM(CASE WHEN T1.Price >= 0 Price < 10 THEN 1 END) AS 'Group1',
        SUM(CASE WHEN T1.Price >= 10 AND Price < 20 THEN 1 END) AS 'Group2',
        SUM(CASE WHEN T1.Price >= 20 AND Price < 30 THEN 1 END) AS 'Group3',
        SUM(CASE WHEN T2.Price >= 0 Price < 10 THEN 1 END) AS 'Group4',
        SUM(CASE WHEN T2.Price >= 10 AND Price < 20 THEN 1 END) AS 'Group5',
        SUM(CASE WHEN T2.Price >= 20 AND Price < 30 THEN 1 END) AS 'Group6'
FROM    table1 T1, table2 T2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM