这是我的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(*)的正确方法是什么?
答案 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
抱歉,我认为我无法正确解释我的问题,因此很多人感到困惑。这是一个非常糟糕的问题。我的错。