我正在使用PDO(仍在学习)并拥有当前的SQL查询。这非常有效,可以合并重复的条目并添加它们的值。有没有办法可以看到有多少重复的条目?
$SQL = "SELECT Col1, SUM(Col2) FROM table WHERE Date > :FromDate AND Date < :EndDate GROUP BY Col1";
我的表格看起来像这样
Col1 Col2
----- ------
ABC 2
ABA 3
ADD 1
AED 3
ABC 2
ABA 3
ADD 1
AED 3
AED 0
目前,在我循环之后,结果看起来像这样
Col1 Col2
---- ----
ABC 4
ABA 6
ADD 2
AED 6
但是我想知道它在分组之前在数据库中发生了多少次的值,这样我最终可以
Col1 Col2 Times Appeared
---- ---- --------------
ABC 4 2
ABA 6 2
ADD 2 2
AED 6 3
答案 0 :(得分:2)
使用count()
。如果与group by
SELECT Col1, SUM(Col2), count(*) as 'Times appeared'
FROM table
WHERE Date > :FromDate AND Date < :EndDate
GROUP BY Col1"
答案 1 :(得分:1)
添加COUNT,如下所示:
SELECT Col1, SUM(Col2), COUNT(*)
FROM table
WHERE Date > :FromDate
AND Date < :EndDate
GROUP BY Col1
答案 2 :(得分:0)
添加COUNT(Col1)
作为查询中选择的最后一项内容。为什么那不起作用?
所以,我不知道为什么downvotes ..除非这是一个平台差异,但在SQL Server中以下代码是等价的
DECLARE @temptbl TABLE
(
textcol varchar(50),
numcol int
)
INSERT INTO @temptbl (textcol,numcol) VALUES('test',4)
INSERT INTO @temptbl (textcol,numcol) VALUES('test',3)
INSERT INTO @temptbl (textcol,numcol) VALUES('test',2)
INSERT INTO @temptbl (textcol,numcol) VALUES('test2',1)
INSERT INTO @temptbl (textcol,numcol) VALUES('test2',3)
SELECT textcol,SUM(numcol),COUNT(numcol) FROM @temptbl GROUP BY textcol
SELECT textcol,SUM(numcol),COUNT(*) FROM @temptbl GROUP BY textcol