Phi*_*ord 5 sql postgresql logic
我有两个查询,我只需要总记录数,但查询中唯一的区别是一个字段值.
例;
SELECT COUNT(*) AS group_a
FROM tbl
WHERE category = 'value_a'
SELECT COUNT(*) AS group_b
FROM tbl
WHERE category = 'value_b'
Run Code Online (Sandbox Code Playgroud)
我怎么能得到这样的东西:(伪)
SELECT COUNT(*) AS group_a, COUNT(*) AS group_b
FROM tbl
WHERE category IN ('value_a', 'value_b')
Run Code Online (Sandbox Code Playgroud)
但结果是这样的
group_a , group_b
56, 101
Run Code Online (Sandbox Code Playgroud)
我在查询中想一个CASE语句来过滤这两个,但我该如何实现呢?或者,还有更好的方法?
我现在正在做一个UNION,但想知道我是否可以返回一条带有两个结果的记录
select sum(case when category = 'value_a' then 1 else 0 end) as group_a,
sum(case when category = 'value_b' then 1 else 0 end) as group_b
from tbl
where category in ('value_a', 'value_b')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2080 次 |
| 最近记录: |