簡體   English   中英

將大於和小於的SQL查詢合並為一個

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM