如果group by返回同一记录超过4次,则SQL Server删除记录

时间:2019-03-25 14:28:26

标签: sql sql-server

我有一个SQL查询:

Select Store, MAX(Value)
From Table
GROUP BY Store

如果该组将导致4个以上具有相同商店名称的记录,我想删除所有记录

2 个答案:

答案 0 :(得分:6)

除非我对这个问题有误解,否则您正在寻找having子句:

SELECT Store, MAX(Value)
FROM Table
GROUP BY Store
HAVING COUNT(*) < 5

答案 1 :(得分:0)

@Zohar答案可能就是您想要的,但是从字面上考虑您的问题,如果您想实际删除属于一个包含四个以上记录的商店组的记录,则可以尝试:

WITH cte AS (
    SELECT Store, COUNT(*) OVER (PARTITION BY Store) cnt
    FROM yourTable
)

DELETE
FROM cte
WHERE cnt > 4;