【问题标题】:Get distinct count of product_id column based on distinct group using mysql query使用 mysql 查询基于不同组获取 product_id 列的不同计数
【发布时间】:2023-03-18 19:22:01
【问题描述】:

我想通过在类别列上应用 group by 子句来获取基于类别列的 product_id 列的总数,我为此编写了 mysql 查询,但它没有按照我的要求工作。

mysql查询:

SELECT DISTINCT category  FROM `product`  group by product_id,category

表:

category      product_id
a              1        
a              1
a              2
b              3   
b              3
b              5

预期输出:

 category    count(product_id)
 a            2
 b            2

【问题讨论】:

  • 你确定那里的“预期结果”
  • 是的,它应该对 category 和 product_id 进行分组
  • 如果我想计算一些东西,我希望在查询中的某处包含“count”这个词
  • 是的,你说得对,我认为 distinct 和 group by 会起作用

标签: mysql sql group-by count


【解决方案1】:

你可以使用count(distinct ...):

select category, count(distinct product_id) cnt_distinct_products 
from product 
group by category

Demo on DB Fiddle

样本数据:

类别 | product_id :------- | ---------: 一个 | 1 一个 | 1 一个 | 2 乙 | 3 乙 | 3 乙 | 5

结果:

类别 | cnt_distinct_products :------- | --------------------: 一个 | 2 乙 | 2

【讨论】:

  • 能否请您检查一下我的预期输出和表格
  • 在如此快速地响应之前,花点时间测试提出的请求。我确定您没有输入正确的“分组依据”
  • @GMB 感谢您的回答,它工作正常,实际上我错过了您在回答中建议的分组方式
  • @A.Baudouin:在我看来,这就像一个直接的聚合查询。我在答案中添加了一个 DB Fiddle 供您参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 2012-12-07
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
  • 1970-01-01
相关资源
最近更新 更多