將它們分組實現了同一行值選取所有列,具有特定特徵,同子數據我有下一個結構的表:通過在Oracle
Data structure:
| CONTRACT | CONNECTION | STATE |
| 1 | AAA | Y |
| 2 | AAA | Y |
| 3 | BBB | N |
| 4 | BBB | N |
| 5 | BBB | N |
| 6 | BBB | N |
| 7 | AAA | Y |
| 8 | CCC | Y |
| 9 | CCC | N |
| 10 | AAA | Y |
| 11 | CCC | N |
我想選擇所有的行/數據考慮到由CONNECTION列定義的組爲AAA,BBB和CCC組,查詢必須僅選擇具有值'N'的STATE列的所有行的組,但始終考慮該組的所有數據。 所以餐桌上的結果將是:
Result needed:
| CONTRACT | CONNECTION | STATE |
| 3 | BBB | N |
| 4 | BBB | N |
| 5 | BBB | N |
| 6 | BBB | N |
我一直在尋找的功能,如解碼,存在等,但就是不明白怎麼解決這個問題。
任何想法,我怎麼可以爲此寫一個查詢?
非常感謝你的所有。我試過_Felix Pamittan_答案,它工作正常。 – Albert
所有3種解決方案都應該可以工作,但[Giorgos Betsos'Answer](http://stackoverflow.com/a/36834763/1509264)只會掃描一次表格/索引,而使用「IN」或「NOT EXISTS」和相關的子-query將掃描子查詢中和外部查詢中的表/索引,並可能會執行更多的IO。如果您查看兩個查詢的解釋計劃,則可以自行計算表(或索引)掃描的數量,並可以查看每個解決方案的不同IO數量。 – MT0