この SELECT を変更して、削除に使用する基準にするにはどうすればよいですか?
SELECT COUNT(empid), empid, status, deptid from tableA
GROUP BY empid, status, deptid HAVING status is null and deptid = 5
この SELECT を変更して、削除に使用する基準にするにはどうすればよいですか?
SELECT COUNT(empid), empid, status, deptid from tableA
GROUP BY empid, status, deptid HAVING status is null and deptid = 5
何を削除しますか?
単にdeptId5にNULLステータスで記録する場合は、
WHERE status is NULL and DeptID = 5
それ以上のものを探しているかどうかはあまり明確ではありません...
GROUP BY を使用した DELETE は機能しない可能性があります。
以下を試してみて、動作するかどうかを確認してください。
DELETE
FROM tableA
WHERE status is null AND deptid=5
DELETE FROM tableA
WHERE status is null AND deptid = 5
Delete from tableA a,
(SELECT COUNT(empid) as count, empid, status, deptid from tableA
GROUP BY empid, status, deptid HAVING status is null and deptid = 5) as b
where a.empid = b.empid
and a.status = b.status
and a.deptid = b.deptid
and b.count > 5
そのようなものがあなたが探しているものでしょうか?カウントが 5 を超えるグループの一部であるすべてのレコードを削除します。
それ以外の場合は、実際には group by から値を削除しておらず、単純な削除を使用できます。
Delete from tableA
where status is null
and deptid = 5