1
Select * from Table

Date            Value
2013-06-24      12
2013-06-24      3
2013-06-24     -4
2013-06-24      33
2013-06-25      12
2013-06-25     -2
2013-06-25      43
2013-06-25      1
2013-06-25     -3

现在我将在一个 SQL 命令中按日期对所有负值、正值和零值进行分组。

4

3 回答 3

3
SELECT
Date,
SUM(CASE WHEN Value > 0 THEN 1 ELSE 0 END) AS pos,
SUM(CASE WHEN Value < 0 THEN 1 ELSE 0 END) AS neg,
SUM(CASE WHEN Value = 0 THEN 1 ELSE 0 END) AS zero
FROM yourTable
GROUP BY Date
于 2013-06-24T10:40:36.737 回答
2

你可以;

select
    DATE,
    SUM(case when value < 0 then 1 else 0 end) as NEGATIVE,
    SUM(case when value > 0 then 1 else 0 end) as POSITIVE,
    SUM(case when value = 0 then 1 else 0 end) as ZERO
from 
    T
group by date
于 2013-06-24T10:39:58.857 回答
2
select date, count(case when value < 0 then value end) as Negative, 
count(case when value > 0 then value end) as positive
from the_table

希望能帮助到你!

于 2013-06-24T10:43:42.800 回答