2015-02-07 39 views
0

我在此處繪製一個主要空白。請幫助我。這裏是我之情況:SQL - 僅選擇具有特定多個值的列

************************ 
| Column A | Column B | 
| A  |  C | 
| A  |  D | 
| A  |  E | 
| A  |  F | 
| A  |  G | 
| A  |  H | 
| B  |  C | 
| B  |  D | 
| B  |  E | 
| B  |  F | 
| B  |  G | 
| B  |  H | 
| C  |  C | 
| C  |  D | 
| C  |  E | 
| C  |  F | 
| C  |  H | 
| C  |  I | 
| D  |  C | 
| D  |  D | 
| D  |  I | 
| E  |  G | 
************************ 

我需要得到所有在A列在B列既有「F」和「G」的值的計數我在這種情況下的結果應該是2( A和B都有F和G - C,而D不)。

我還需要計算A中只有'G'列中所有值的計數。我在場景中的結果應該是1(A和B都有'G',但它們有其它值僅有英文有一個「G」)

我能想出的唯一事情是下面的 - 我相信我是沒譜的方式在這一個:。

SELECT COUNT(C.A) 
    FROM (
      SELECT C.A 
      FROM T 
      WHERE C.B = 'F' 
      OR C.B = 'G' 
      GROUP BY C.A 
      HAVING COUNT(*) > 1 
     ) AS CNT 

回答

0

你應該切不同的Bs

SELECT COUNT(*) As CountOfAs 
    FROM (
      SELECT C.A 
      FROM T 
      WHERE C.B = 'F' 
      OR C.B = 'G' 
      GROUP BY C.A 
      HAVING COUNT(DISTINCT(B)) > 1 
     ) AS CNT 
+0

Yeesh ...當然我錯過了一個小字...謝謝Giorgi!今晚你很感激! – akaWizzmaster 2015-02-07 06:36:52

相關問題