MySQL - 为当前行执行COUNT(*)

时间:2014-12-09 12:00:40

标签: mysql sql

这是我的SELECT查询:

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 个答案:

答案 0 :(得分: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 :(得分:1)

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

答案 2 :(得分:1)

找到它。

如果我这样写我的查询:

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

然后我获得Table1中所有行的COUNT项。

我实际上想要选择行的所有项目的COUNT。

就像我可能让col3值出现不止一次。我实际上想要计算每个col3的所有项目。

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

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

抱歉,我认为我无法正确解释我的问题,因此很多人感到困惑。这是一个非常糟糕的问题。我的错。