web-dev-qa-db-ja.com

WHERE句のカウントのSELECTSQL構文

正しいSQLステートメント(Oracle)を作成して、指定された値より大きい各customer_idのdevice_idの数を取得しようとしています。たとえば、3つ以上のdevice_idを持つcustomer_idを知りたいとします。 1つのdevice_idに関連付けることができるcustomer_idは1つだけですが、customer_idには多数のdevice_idを含めることができます。

Table:
device_id
customer_id
....

Data (device_id, customer_id):
00001, CUST1
00002, CUST1
00003, CUST1
00004, CUST1
00005, CUST2
00006, CUST2
7
c12

3つ以上のデバイスを顧客に提供するには:

select customer_id, count(device_id)
from YourTable
Group by customer_id
having count(device_id) > 3
16
Adrian Carneiro

GROUP BYおよびHAVING句を使用することをお勧めします

select customer_id, count(device_id)
from YourTable
group by customer_id
having count(device_id) > 3
3
Taryn

必要なのは、having句です。

select customer_id, count(*)
from t
group by customer_id
having count(*) > 3
1
Gordon Linoff