2014-12-09 83 views
3

這裏是我的SELECT查詢執行COUNT(*):MySQL的 - 當前行

SELECT col1, col3, col5, col8 
FROM Table1 

在我SELECT查詢,我想執行COUNT(*)專門爲當前行

我想是這樣的,但不知道怎樣才能得到這樣的:

SELECT col1, col3, 
(
SELECT COUNT(*) 
FROM table1 WHERE col3 = col3 value for current row 
), 
col5, col8 
FROM Table1 

什麼是爲SELECT查詢結果集的當前行執行COUNT(*)的正確方法?

+3

當前行的數量?這太混亂了。 – Rahul 2014-12-09 12:04:48

+1

如果id是唯一的,則每行的計數爲1,您是否累了罰款重複ID? – Jay 2014-12-09 12:06:57

+0

是此表自動增量的唯一或唯一值? – NULL 2014-12-09 12:07:19

回答

1
SELECT col1, col3, 
(
    SELECT COUNT(*) 
    FROM table1 WHERE id = A.Id 
) Count, 
col5, col8 
FROM Table1 A 
2

試試這個:

set @num := 0; 
SELECT @num := @num+1 , col1, col3, col5, col8 FROM Table1 

或其他方式:

SET @num := (SELECT COUNT(*) FROM Table1) ; 
SELECT @num := @num -1 , col1, col3, col5, col8 
FROM Table1 
1

發現了它。

如果我寫我的查詢是這樣的:

SELECT col1, col3, 
COUNT(*) AS count, 
col5, col8 
FROM Table1 

然後我得到表1中的所有項目的所有行的COUNT。

我其實想要選擇行的所有項目的計數。

就像我可能有不止一次出現col3值一樣。我實際上需要每個col3的所有項目的數量。

因此,GROUP BY子句是解決方案。

SELECT col1, col3, 
COUNT(*) AS Count, 
col5, col8 
FROM Table1 
GROUP BY col3 

對不起,我想我無法正確解釋我的問題,所以很困惑很多人..一個非常糟糕的問題。我的錯。