2013-12-11 38 views
1

結合SQL查詢我有以下兩個查詢:爲大於和小於成一個

select count * form a where temp>str group by x,y 
select count * form a where temp<=str group by x,y 

這個結果表的解析兩次。由於表格大小爲100個演出,我想如果我們可以減少這個單一的查詢。

回答

2

試試這個:

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` 
+0

你能解釋一下查詢嗎?結果集將如何顯示? –

3
select sum(IF(temp>'str',1,0)) as GREATER, 
     sum(IF(temp<'str',1,0)) as LESSER 
    from a 
    group by x,y 

這將返回一個單行兩個領域,更大和更小,其中包含分別比字符串大,小行數的計數。

如果(temp>'str',1,0))返回1,如果更大,否則返回0.總結這些值將給出更大的rwos總數。

IF(temp <'str',1,0))返回1如果更小,否則返回0.總結這些值將給出更小的rwos總數。

+0

你能解釋一下查詢嗎?結果集將如何顯示? –