sql - 如何使用SQL计算表中的唯一记录并获取这些唯一记录的数量?

标签 sql count unique numbers records

想象一下我有这样的表:

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 来保留一些剩余的,但这似乎是很多无用的脚本。

如果你有一些不错的主意,请告诉我。

最佳答案

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

select shop_id, count(1) from TABLE_NAME
  group by shop_id

关于sql - 如何使用SQL计算表中的唯一记录并获取这些唯一记录的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/237302/

相关文章:

sql - 键列和非键列的区别

mysql - SQL分组查询

r - 按月绘制单词的推文计数/频率

mysql - MySQL 工作台是否显示未提交的更改?

php - 为什么我的 sql 计数打印字母文本?

MySQL查询: use each result/row to regex and count another table

mysql - COUNT UNION 太多

hibernate - Grails独特的约束

sql - Oracle中如何检查所有字段是否唯一?

python - 行和列中唯一的条目的组合