【问题标题】:return count of specific row in SQL返回 SQL 中特定行的计数
【发布时间】:2020-06-11 21:19:31
【问题描述】:

我有这张桌子:

------------------------------
|PRODUCT_NAME | PRODUCT_COLOR|
------------------------------
|Name 1       | Red          |
|Name 1       | Green        |
|Name 1       | White        |
|Name 2       | Red          |
|Name 2       | Green        |
------------------------------

我需要一个 SQL 查询来给我这样的结果:

------------------------------
|PRODUCT_NAME | PRODUCT_COLOR|
------------------------------
|Name 1       | 3            |
|Name 2       | 2            |
------------------------------

所以它在计算有多少颜色

有可能吗?

【问题讨论】:

  • 你的主键是什么?
  • PRODUCT_ID 是主键
  • 是的,有可能。你有没有尝试过什么,你的具体问题是什么,阻止你这样做?
  • 只需检查COUNTGROUP BY sql 函数
  • 请相应地编辑您的问题

标签: mysql sql select group-by count


【解决方案1】:

这看起来像简单的聚合:

select product_name, count(*) no_colors
from mytable
group by product_name

或者,如果您有重复,并且您只想对每种产品的每种颜色计数一次,请使用count(distinct ...)

select product_name, count(distinct product_color) no_colors
from mytable
group by product_name

【讨论】:

    猜你喜欢
    • 2017-03-16
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多