假设我有这样一张桌子:
id|time|operation
1 2 read
2 5 write
3 3 read
4 7 read
5 2 save
6 1 open
Run Code Online (Sandbox Code Playgroud)
现在我想做两件事:
这样我的查询只会导致两行。
到目前为止我得到的是:
select
sum(time) as total_time,
operation
group by
operation
;
Run Code Online (Sandbox Code Playgroud)
虽然这给了我很多组,这取决于不同操作的数量。
我怎么能把它们分成两类?
干杯!
group by 可以采用任意子句,所以
GROUP BY (operation = 'read')
Run Code Online (Sandbox Code Playgroud)
将工作。本质上,您将根据比较的布尔结果而不是操作字段的值进行分组,因此任何“读取”的记录都将是 group 1,任何未读取的记录都将是 group 0。