我有一个SQL查询:
Select Store, MAX(Value)
From Table
GROUP BY Store
如果该组将导致4个以上具有相同商店名称的记录,我想删除所有记录
答案 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;