【问题标题】:count items in each category计算每个类别中的项目
【发布时间】:2011-01-06 08:28:23
【问题描述】:

我有表项的以下表架构

id | item_id | category_id

我在这张表中有样本数据

id  | item_id | category_id

1   | 1       | 1
2   | 1       | 2
3   | 2       | 1
4   | 2       | 2
5   | 3       | 1
6   | 1       | 1

要求:我需要计算所有在每个 category_id 中重复的项目。在上述场景中 item_id '1' 在类别 '1' 中重复。我需要针对每个 category_id 计算无效或重复的 item_id。

【问题讨论】:

  • 您没有定义“无效”item_id 的含义。
  • 您可以按照select count(*), category_id, item_id from table where true group by category_id, item_id 的方式执行操作,然后查找计数 > 1 的记录。不过,在大表上的性能会很糟糕。
  • invalid 表示重复,表示这些是相同的东西。

标签: sql


【解决方案1】:

我认为这应该为你做:

Select item_Id, category_id
From Table
Group By item_Id, category_id
Having Count(*) > 1

【讨论】:

    【解决方案2】:
    SELECT category_id, item_id, COUNT(*) 
    FROM table
    GROUP BY category_id, item_id
    HAVING COUNT(*) > 1
    

    会给你重复的。至于“无效”,您没有定义这些是什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 2021-03-23
      • 2020-10-18
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      相关资源
      最近更新 更多