2015-09-15 56 views
-1

我試圖做一個查詢我的MySQL數據庫SQL組由不同的值

我有

 
Field 1 | Field 2 | url 
v1  | Value01 | http:1 
v1  | Value02 | http:2 
v2  | Value02 | http:3 
v3  | Value01 | http:4 
v3  | Value02 | http:5 
v2  | Value02 | http:6 

我嘗試從數場2的值時,他們被重複 所有字段分組1

我希望這

 
Field 1 | count Value01(from Field 2)|count Value02(from Field 2) 
v1  | 1       | 1 
v2  | 0       | 2 
v3  | 1       | 1 

是想辦法做那樣的事情嗎?

+0

對於您的輸入,您的願望輸出是'v1 | 1 | 1',因爲'v1'只有一個'Value01'和一個'Value02'? –

+0

你能舉一個更清晰的例子嗎?我不明白你想要實現什麼 –

+0

是的胡娟你是對的 – msidelnik

回答

0

您使用條件COUNTSUM

  • 可以刪除ELSE NULL因爲是CASE默認的回報,但我把它給了讀數清晰。

SELECT 
    Field1, 
    COUNT(CASE 
      WHEN Field2 = 'Value01' THEN 1 
      ELSE NULL 
      END) as count_Value01, 
    SUM (CASE 
      WHEN Field2 = 'Value02' THEN 1 
      ELSE 0 
      END) as count_Value02 
FROM yourTable 
GROUP BY Field1 
+0

謝謝! 我想是:當Field2 ='Value01'**然後** 1而不是** = ** – msidelnik

+0

您是對的。固定 –

0

您可以使用條件聚合來做到這一點。這在MySQL中特別簡單:

select field1, sum(field2 = 'Value1') as NumValue01, 
     sum(field2 = 'Value02') as NumValue2 
from table t 
group by field1;