2016-01-11 21 views
1

我正在使用MySQL。
我們來看一個示例
表-A如何選擇那些不同的行,其中非值非爲正

number value 
    1  1 
    1  1 
    1  0 
    2  1 
    2  1 
    3  1 
    3  0 

我想這不會有任何值0所有不同行,如在上述情況下,預期的結果是2 我們知道MySQL不支持負操作就可以了,有人幫我解決了這個問題。

編輯: 答案應該是2錯誤我把它改爲1(編輯)。

回答

0

試試這個:

SELECT number 
FROM mytable 
GROUP BY number 
HAVING COUNT(CASE WHEN value = 0 THEN 1 END) = 0 

HAVING條款過濾掉含有至少一種0價值number片。

Demo here

,或者可選地:

SELECT number 
FROM mytable 
GROUP BY number 
HAVING MIN(value) > 0 

上面的查詢選擇包含僅,非零,值number基。

Demo here

+0

謝謝先生,像魅力一樣工作 – Atiq

0

嘗試以下操作:

SELECT 
number, 
DISTINCT(value) 
FROM table_a 
WHERE value > 0; 
+0

不按預期方式工作。 – Atiq

+0

你上面寫的是你想要的不是0的值嗎?我是對的 –

+0

答案應該是2,你能改善你的答案嗎? – Atiq

0

兩個列鮮明這樣

SELECT DISTINCT number, value FROM table_a 
WHERE value <> 0; 
+0

答案應該是2,你能改善你的答案嗎? – Atiq

1

下面是使用DISTINCT關鍵字的選擇:

SELECT number, value 
FROM table_a 
GROUP BY number, value 
HAVING SUM(value) > 0 

如果你想要的號碼記錄numbervalue都等於1,那麼I w烏爾德嘗試以下操作:

SELECT COUNT(*) 
FROM table_a 
WHERE number = 1 AND value = 1 
+0

答案應該是2,你能改善你的答案嗎? – Atiq

+0

我在示例數據中看到三個不同的非零行。爲什麼答案是2? –

+1

因爲number rows = 2所有的值都是1. – Atiq

相關問題