如何在这里使用 havng 计数的 SQL 查询?
How to use SQL query with havng count here?
我有 Table(Tbl_Test) 和以下数据。
RecordId BatchName Numbers MQC
1 20150443 321106 0
2 20150430 321107 0
3 20150430 321107 1
4 20150412 321110 2
5 20150430 321118
6 20150430 321120
7 20150432 321120
8 20150430 321126
9 20150432 321127
10 20150430 321129
11 20150431 321129
根据上面的内容table我想要输出,例如计数大于 1 的数字列。
RecordId BatchName Numbers MQC
2 20150430 321107 0
3 20150430 321107 1
6 20150430 321120
7 20150432 321120
10 20150430 321129
11 20150431 321129
我尝试了以下 select 但没有成功:
select RecordId,BatchName,Numbers,MQC
from Tbl_Test
group by RecordId,BatchName,Numbers,MQC
having count(Numbers)>1
在 MAC 上对记录 ID 使用计数和分组依据。
'Count(RecordId) Group By MQC' 应该适合你。
一种解决方案是使用 Common table expression。
试试这个:
;With CTE AS
(
SELECT Numbers,
Count(1) As NumberOfRows
FROM Tbl_Test
GROUP BY Numbers
)
SELECT T.*
FROM Tbl_Test T
INNER JOIN CTE ON(T.Numbers = CTE.Numbers)
WHERE NumberOfRows > 1
;WITH CTE AS
(
SELECT
RecordId,
BatchName,
Numbers,
MQC,
count(*) over (partition by Numbers) cnt
FROM tbl_test
)
SELECT
RecordId, BatchName, Numbers, MQC
FROM CTE
WHERE cnt > 1
您可以将 GROUP BY
与 HAVING
和 IN
一起使用。像这样。
SELECT * FROM Tbl_Test
WHERE Numbers IN
(
SELECT Numbers
FROM Tbl_Test
GROUP BY Numbers
HAVING COUNT(*) > 1
)
我有 Table(Tbl_Test) 和以下数据。
RecordId BatchName Numbers MQC
1 20150443 321106 0
2 20150430 321107 0
3 20150430 321107 1
4 20150412 321110 2
5 20150430 321118
6 20150430 321120
7 20150432 321120
8 20150430 321126
9 20150432 321127
10 20150430 321129
11 20150431 321129
根据上面的内容table我想要输出,例如计数大于 1 的数字列。
RecordId BatchName Numbers MQC
2 20150430 321107 0
3 20150430 321107 1
6 20150430 321120
7 20150432 321120
10 20150430 321129
11 20150431 321129
我尝试了以下 select 但没有成功:
select RecordId,BatchName,Numbers,MQC
from Tbl_Test
group by RecordId,BatchName,Numbers,MQC
having count(Numbers)>1
在 MAC 上对记录 ID 使用计数和分组依据。
'Count(RecordId) Group By MQC' 应该适合你。
一种解决方案是使用 Common table expression。
试试这个:
;With CTE AS
(
SELECT Numbers,
Count(1) As NumberOfRows
FROM Tbl_Test
GROUP BY Numbers
)
SELECT T.*
FROM Tbl_Test T
INNER JOIN CTE ON(T.Numbers = CTE.Numbers)
WHERE NumberOfRows > 1
;WITH CTE AS
(
SELECT
RecordId,
BatchName,
Numbers,
MQC,
count(*) over (partition by Numbers) cnt
FROM tbl_test
)
SELECT
RecordId, BatchName, Numbers, MQC
FROM CTE
WHERE cnt > 1
您可以将 GROUP BY
与 HAVING
和 IN
一起使用。像这样。
SELECT * FROM Tbl_Test
WHERE Numbers IN
(
SELECT Numbers
FROM Tbl_Test
GROUP BY Numbers
HAVING COUNT(*) > 1
)