我有这个查询来列出和计算不同的分辨率:
SELECT DISTINCT w, h, count(*) as c from resolution GROUP BY w, h
现在我喜欢将(w,h)==(h,w)的值分组,例如在800 x 1200的同一行中计算1200 x 800。
单个SQL语句会很好。
答案 0 :(得分:0)
尝试这样做:
select (case when w < h then w else h end) as v1,
(case when w < h then h else w end) as v2,
count(*) as c
from resolution r
group by (case when w < h then w else h end),
(case when w < h then h else w end);
请注意,使用distinct
时几乎不需要group by
。
此外,某些数据库具有可以简化代码的least()
和greatest()
函数,但您没有指定要使用的数据库。以上是ANSI标准SQL。