我有一張付款表。它有一個名為 user_id 和 payment_type 的欄位。對於每次付款,用戶可以有多種付款類型。 我想找出我一生中只使用過一種 payment_type 的使用者。
讓我透過一個例子來清楚地說明: 假設我有以下數據:
user_id payment_type 1 UPI 1 NB 2 UPI 2 UPI
對於上述內容,我只希望 user_id 2 作為輸出,因為對於這兩次付款,它只使用了 1 個 payment_type。
user_id
有人可以幫忙嗎?
一個簡單的 HAVING 和 COUNT 應該可以解決問題:
select user_id from my_table group by user_id having count(distinct payment_type)=1;
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=65f673a7df3ac0ee18c13105a2ec17ad一个>
如果您想在結果集中包含 payment_type,請使用:
select my.user_id,my.payment_type from my_table my inner join ( select user_id from my_table group by user_id having count(distinct payment_type)=1 ) as t1 on t1.user_id=my.user_id group by my.user_id,my.payment_type ;
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=cc4704c9e51d01e4e8fc087702edbe6e 一个>
一個簡單的 HAVING 和 COUNT 應該可以解決問題:
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=65f673a7df3ac0ee18c13105a2ec17ad一个>
如果您想在結果集中包含 payment_type,請使用:
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=cc4704c9e51d01e4e8fc087702edbe6e 一个>