让我们说我有一个像这样结构的表(使用SQL服务器):
empID INT
payment INT
现在,每位员工只能获得50.00或100.00的工资。有两名员工的收入为50.00,三名收入为100.00。
我如何执行select语句,以便结果集如下所示:
50.00 100
----- -----
2 3
其中50.00和100.00是列标题,下面的数字是实际值。我知道我可以做到
SELECT payment, COUNT(*)
FROM Student
GROUP BY payment
但是,它会在自己的列中返回付款。我希望每个不同的付款值都在自己的列中。
答案 0 :(得分:1)
以下是:
select sum(case when payment = 50.00 then 1 else 0 end) as num050,
sum(case when payment = 100.00 then 1 else 0 end) as num100
但是,对于浮点数,您不应该进行相同的比较。最好做一些事情:
sum(case when abs(payment - 50) < 0.001 then 1 else 0 end)
或类似的东西。