[SQL ] 如何有條件篩選資料表

看板Database作者 (........)時間16年前 (2009/04/22 11:07), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/3 (看更多)
昨天被板主誤刪, 容我再 po 一次... Orz 想請教一下各位前輩, 我用的資料庫是 MySQL, 假設我有一個資料表如下: no ID type cost ---------------------- 1 123 A 100 2 123 B 150 3 445 B 150 4 445 B 150 5 677 A 100 6 677 B 150 7 677 B 150 . . . . . . . . ---------------------- 我要看不同 type 的摘要資訊的話, 只要打 select type, count(*), sum(cost) from table group by type; 但現在我想要過濾掉同一個 ID 下只有一種 type 的資料, 以上面的表來說就是踢掉 ID 為 445 的兩筆資料, 因為他的 type 就只有一個 B 而已, 也就是想要只保留同一個 ID 下至少有兩種 type 的資料~! 不知道像這樣的情形 SQL 語法可以做到嗎?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.241.14.158

04/22 12:29, , 1F
先 subquery 吧
04/22 12:29, 1F

04/22 12:32, , 2F
GROUP BY ID, TYPE HAVING COUNT(*) > 1 試試看
04/22 12:32, 2F

04/22 13:34, , 3F
樓上方法我之前試過, 無法真正保留至少有 A 跟 B 的資料..
04/22 13:34, 3F

04/22 13:50, , 4F
另外也感謝 cutecpu 大的水球討論與信件教學...
04/22 13:50, 4F
文章代碼(AID): #19xedXVH (Database)
文章代碼(AID): #19xedXVH (Database)