我有点陷入一个非常简单的查询
我在表格中有这4列
id1(唯一),id2(可重复),更新(布尔),updated_on
我现在想要的是以
的形式获得摘要id2,更新次数,max(updated_on)
总之,我希望结果按最近的updated_on排序,同时计算此id2的所有行,其中update = 1
并且对于没有任何更新= 1的ID,显示0,使用max updated_on
______________________ id2|_count__|___date__ 1 | 0 | 11/03/05, 3 | 5 | 11/03/04, 6 | 3 | 11/03/03, 2 | 0 | 11/03/02,
我使用了这个查询:
select id2, count(updated),max(updated_on) from table where updated=1 group by need_id_to
但是这个查询不会带来计数为0的结果(原因很明显,因为我在where子句中添加了一个条件)
答案 0 :(得分:1)
true
的布尔字段为1,false
的布尔字段为0
您可以使用它来获取所有updated = true
行的计数。
SELECT
id2
, SUM(updated) as updates
,MAX(updated_on) as last_update
FROM table1
GROUP BY id2
ORDER BY last_update DESC
答案 1 :(得分:1)
select id2,
count(case
when updated=1 then updated
else null
end) updates_count,
max(updated_on) last_updated
from table
group by id2
order by last_updated desc
答案 2 :(得分:0)
select id2,
SUM(CASE WHEN updated=1 THEN 1 ELSE 0 END) AS UpdatedCount,
max(updated_on)
from table
group by id2