一意のレコードをカウントし、SQLを使用してこれらの一意の数をテーブルで取得する方法は?

StackOverflow https://stackoverflow.com/questions/237302

質問

このようなテーブルがあると想像してください:

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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top