2012-07-10 64 views
-1

我有一個包含以下字段的表。從表中選擇計數所需的Sql查詢

Col A Col B 
----- ----- 
I1  10 
I1  10 
I2  16 
I3  14 
I2  16 

我需要一個查詢,應按如下給出輸出:

ColA Col B Count 
---- ----- ----- 
I1  10  2 
I2  16  2 
I3  14  1 

如何寫這個查詢。 請幫助

+3

能否請你告訴我們你有什麼到目前爲止已經試過。 – Lex 2012-07-10 08:56:53

+0

你需要在GROUP BY這兩列中使用COUNT來得到相同的行數。 – 2012-07-10 08:57:44

+0

這個問題似乎是無關緊要的,因爲它是關於爲他完成提問者的工作。 – 2014-03-04 03:36:22

回答

1

如果ColB總是對的ColA一個特定的值相同,則可以使用max

select ColA 
,  max(ColB) 
,  count(*) 
from YourTable 
group by 
     ColA 

否則,你不得不解釋如何在你的結果ColB值計算。

0

請試試這個,讓我知道

select [Col A] ,[Col B] ,count(*) [Count] 
    from <table> 
    group by [Col A] ,[Col B] 
    order by [Col A] 
+0

我試過了。但它不工作。計數不正確計算。 – raji 2012-07-10 09:01:56

+0

@raji:這是根據你提供的例子。請告訴我Col B值如何。 I1總是10嗎?或者它是否也有其他一些價值? – 2012-07-10 09:09:34

0

您可以使用此解決方案:

SELECT ColA, ColB, COUNT(1) AS Count 
FROM tbl 
GROUP BY ColA, ColB 
3
select colA, colB, count(colB) as `Count` 
from your_table 
group by colA, colB 
+1

http://sqlfiddle.com/#!2/e5c1b/1 – biziclop 2012-07-10 08:59:23

1
SELECT ColA, ColB, Count(ColB) FROM T GROUP BY ColA, ColB 
1

使用GROUP BY

SELECT colA, colB, COUNT(colB) as Total 
    FROM tableName 
    GROUP BY colA, colB 
0

試試這個:

SELECT ColA, colB, COUNT(colB) AS Count 
FROM TableName 
GROUP BY ColA,ColB 
ORDER BY ColA,ColB 

this SQL fiddle.