一意のレコードをカウントし、SQLを使用してこれらの一意の数をテーブルで取得する方法は?
質問
このようなテーブルがあると想像してください:
id:Product:shop_id
1:バスケットボール:41
2:サッカー:41
3:Rocket:45
4:車:86
5:平面:86
現在、これは1人の顧客に販売するショップがある大きなインターネットモールの例であるため、顧客は各ショップからより多くの製品を選択して1つのバスケットで購入できます。
ただし、カスタマーバスケットで一意のshop_idとそれらのショップの製品の合計数を簡単に取得できるSQL構文があるかどうかはわかりません。だから私は次のようなものを得ます:
Shop 41には2つの製品があります
1つの商品を45個購入する
ショップ86の2つの製品
SQLクエリを実行してテーブルをすくい、すべての製品のshop_idを格納する['shop_id'] ['number_of_products']配列変数を作成してから、それらを "一意"にすることができます。 -いくつか残っているためにもう1つshop_idを削除しなければならなかった回数をカウントしますが、それは多くの役に立たないスクリプトのように思えます。
素敵で素敵なアイデアがありましたら、教えてください。
解決
これは、まさに集約関数の対象です。テーブル内の行グループごとに1行の出力を作成します。 shop_idでグループ化し、各グループに含まれる行数をカウントします。
select shop_id, count(1) from TABLE_NAME
group by shop_id
所属していません StackOverflow