[英]Combining SQL query for greater than and less than into one
我有以下兩個查詢:
select count * form a where temp>str group by x,y
select count * form a where temp<=str group by x,y
這將導致表解析兩次。 由於表的大小為演出的100,所以我在考慮是否可以將其減少為單個查詢。
select sum(IF(temp>'str',1,0)) as GREATER,
sum(IF(temp<'str',1,0)) as LESSER
from a
group by x,y
這將返回具有兩個字段GREATER和LESSER的單行,這兩個字段分別包含大於和小於字符串的行數的計數。
IF(temp>'str',1,0))如果大於則返回1,否則返回0。將這些值相加將得出rwos的總數。
IF(temp <'str',1,0))如果較小則返回1,否則返回0。將這些值相加將得出較小的rwos總數。
嘗試這個:
SELECT
SUM(CASE WHEN `temp` > `str` THEN 1 ELSE 0 END) AS `greater`,
SUM(CASE WHEN `temp` < `str` THEN 1 ELSE 0 END) AS `less`
FROM
`a`
GROUP BY
`x`,
`y`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.