如何在这里使用 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

play with it your self on sql fiddle

;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 BYHAVINGIN 一起使用。像这样。

SELECT * FROM Tbl_Test 
WHERE Numbers IN
(
    SELECT Numbers
    FROM Tbl_Test 
    GROUP BY Numbers
    HAVING COUNT(*) > 1
)