私はこのような表を持っています。最高の日付から離れたすべての行を削除
ID | Create Date
---+-------------------------
1 | 2007-06-12 15:44:10:000
1 | 2007-07-12 15:44:10:000
2 | 2007-06-12 15:44:10:000
2 | 2007-07-12 15:44:10:000
2 | 2007-08-12 15:44:10:000
3 | 2007-09-12 15:44:10:000
4 | 2012-06-12 15:44:10:000
5 | 2011-07-12 15:44:10:000
他のすべての行を削除している間は、max(createdate)
を保持する必要があります。私はまたID 3,4,5で行を保持する必要があります。
助けがあれば助かります。
注:これは少し抽象です。
DELETE FROM table
WHERE ID NOT IN (SELECT ID FROM table
WHERE ID IN 3, 4, 5 OR ID = (SELECT ID FROM table as a
WHERE createdate = (SELECT MAX(createdate) FROM
table as b WHERE a.ID = b.ID)))
どのDBMSを使用していますか? SQLサーバー? MySQL?オラクル?他に何か? – Siyual
Sql server 2008 r2 –
SOは質問をして答えを得る素晴らしいサイトです:完全な[MCVE](https://stackoverflow.com/help/mcve)を提供してください。質問をする前に[最初にアヒルと話をする](https://blog.codinghorror.com/rubber-duck-problem-solving/)を検討してください。そうです。私は本気です!私たちのお手伝いをするために、サンプルデータと期待される結果を生成してください。 [ascii table](https://ozh.github.io/ascii-tables/)は、出力を読みやすくします!データをモックアップすると、SQLはhttp://rextester.com/または類似のサイトを使用して試してみることもできます。かなり多くのことが可能です。それは私たちがそれをするべきかどうかの問題です。私たちはできません。 – xQbert