我有資料分組(column_2),我只想選擇每個組(相同column_2值)另一列(column_3)的所有值都相等的行。還有更多沒有不同值的列(例如 column_1),但我們不關心它們的值。
例如,對于此表:
| column_1 | column_2 | column_3 |
----------------------------------
|'irrelevant'| 1 | 5 |
|'irrelevant'| 1 | 5 |
|'irrelevant'| 1 | 5 |
|'irrelevant'| 2 | 3 |
|'irrelevant'| 2 | 5 |
|'irrelevant'| 2 | 5 |
|'irrelevant'| 3 | 7 |
|'irrelevant'| 3 | 7 |
|'irrelevant'| 4 | 8 |
|'irrelevant'| 4 | 9 |
|'irrelevant'| 4 | 2 |
|'irrelevant'| 5 | 6 |
|'irrelevant'| 6 | 2 |
|'irrelevant'| 7 | 1 |
|'irrelevant'| 7 | 1 |
|'irrelevant'| 7 | 1 |
我會得到:
| column_1 | column_2 | column_3 |
----------------------------------
|'irrelevant'| 1 | 5 |
|'irrelevant'| 1 | 5 |
|'irrelevant'| 1 | 5 |
|'irrelevant'| 3 | 7 |
|'irrelevant'| 3 | 7 |
|'irrelevant'| 5 | 6 |
|'irrelevant'| 6 | 2 |
|'irrelevant'| 7 | 1 |
|'irrelevant'| 7 | 1 |
|'irrelevant'| 7 | 1 |
這些行被跳過,對于相同的 column_2 值,column_3 在它們之間是不同的。
uj5u.com熱心網友回復:
您可以使用COUNT(DISTINCT <expr>)來找出每組有多少不同的值。
例如:
select *
from t
where column_2 in (
select column_2
from t
group by column_2
having count(distinct column_3) = 1
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/465859.html
標籤:sql PostgreSQL
