我在SQL Server中有这个表
name type date
aaa A 2016-05-05
aaa A 2016-05-22
aaa B 2016-05-21
bbb A 2016-05-15
bbb B 2016-05-01
我希望进行查询以获得此结果
name count(type)
aaa 2.5
bbb 1.5
注意:对于A,计数必须增加1,对于B增加0.5,因为我有这个规则:
count(type)=count(A)+count(B)/2
答案 0 :(得分:3)
试试这个:
SELECT SUM(CASE type WHEN 'A' THEN 1.0 WHEN 'B' THEN 0.5 END)
FROM mytable
GROUP BY name
答案 1 :(得分:2)
SELECT
SUM(
CASE type
WHEN 'B' THEN 0.5
WHEN 'A' THEN 1
END)
FROM <Table Name>
GROUP BY name
答案 2 :(得分:0)
您可以使用CASE进行如下计算: SELECT SUM(CASE 当Type =&#39; A&#39; 然后1 ELSE 0 END)作为SumA,SUM(CASE 当Type =&#39; B&#39; 那么0.5 ELSE 0 END)作为Sum220 从你的表