15

次のようなテーブルがあるとします。

id:商品:shop_id

1:バスケットボール:41

2:サッカー:41

3:ロケット:45

4:車:86

5:プレーン:86

さて、これは大規模なインターネット モールの例です。1 人の顧客に販売する店舗があるため、顧客は各店舗からより多くの商品を選択して 1 つのバスケットで購入できます。

ただし、一意の shop_id と顧客バスケット内のショップの商品の総数を簡単に取得できる SQL 構文があるかどうかはわかりません。だから私は次のようなものを得るでしょう:

ショップ 41 には 2 つの商品があります

45 個の商品を購入する

ショップ 86 2 つの製品

すべての製品の shop_id を格納するある種の ['shop_id']['number_of_products'] 配列変数を作成する SQL クエリを作成して、テーブルをすくい取り、「それらを一意にする」ことができます。 shop_id をもう 1 つ追加して残りを確保していますが、これは無駄なスクリプトのように思えます。

素敵で素敵なアイデアがあれば、教えてください。

4

1 に答える 1

31

これは、まさに集計関数の目的です。テーブル内の行のグループごとに 1 行の出力を作成します。それらを shop_id でグループ化し、各グループに含まれる行数を数えます。

select shop_id, count(1) from TABLE_NAME
  group by shop_id
于 2008-10-26T01:08:05.210 に答える