如何通过两个查询从同一个表中创建两列

时间:2016-04-29 06:00:25

标签: sql database oracle

我有两个查询来自同一个表,但有两个条件,但我怎么能为这两个条件计数制作两列。

SELECT Count(*) FROM TBL_FT WHERE STATUS = 'X';
SELECT Count(*) FROM TBL_FT WHERE STATUS = 'Y' and
LOGDATE>trunc(sysdate);

2 个答案:

答案 0 :(得分:1)

您可以使用条件聚合:

SELECT
    COUNT(CASE WHEN STATUS = 'X' THEN 1 END),
    COUNT(CASE WHEN STATUS = 'Y' AND LOGDATE > trunc(sysdate) THEN 1 END)
FROM TBL_FT

您还可以添加WHERE子句:

WHERE STATUS IN ('X', 'Y');

答案 1 :(得分:0)

你可以使用这样的东西 -

SELECT SUM(CASE
               WHEN STATUS = 'X' THEN
                1
               ELSE
                0
             END) FIRST_VAL,
       SUM(CASE
                      WHEN STATUS = 'Y'
                           AND LOGDATE > TRUNC(SYSDATE) THEN
                       1
                      ELSE
                       0
                    END) second_val
         FROM TBL_FT;