15

想象一下我有这样的表:

id:产品:shop_id

1:篮球:41

2:足球:41

3:火箭:45

4:汽车:86

5:平面:86

现在,这是一个大型互联网商城的例子,其中有商店向一个客户销售,因此客户可以从每个商店中选择更多产品并在一个篮子中购买。

但是,我不确定是否有任何 SQL 语法可以让我简单地获取唯一的 shop_ids 和客户购物篮中这些商店产品的总数。所以我会得到类似的东西:

41 号店有 2 件商品

购买 45 件商品

店铺 86 两款产品

我可以进行 SQL 查询以通过表舀出某种 ['shop_id']['number_of_products'] 数组变量来存储所有产品的 shop_id,然后“使它们唯一” - 向上计算我必须削减多少次还有一个 shop_id 有一些剩余,但这似乎是很多无用的脚本。

如果你有什么好主意,请告诉我。

4

1 回答 1

31

这正是聚合函数的用途。您为表中的每组行制作一行输出。按 shop_id 对它们进行分组并计算每组中有多少行。

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