【问题标题】:How to count items per category?如何计算每个类别的项目?
【发布时间】:2012-05-21 15:02:32
【问题描述】:

我想对网站上的产品进行过滤。 像这样:

Department
- lassics (13,395)
- Literary (111,399)
- History (68,606)
...

Format
- HTML (3,637)
- PDF (8)
- Audio CD (443)
...

Language
- English (227,175)
- German (10,843)
- French (10,488)
...

如何计算每个类别的产品?每个类别单独的 SQL 查询会太慢,因为产品和类别太多。我建议缓存也不是一种选择。

也许使用 MySQL EXPLAIN 查询是有意义的(尽管它并不总是提供足够的信息)?或者也许使用狮身人面像搜索引擎进行计数?......最好的方法是什么?谢谢。

【问题讨论】:

标签: mysql sql count


【解决方案1】:

试试:

SELECT category, COUNT(*) as count FROM table GROUP BY category

响应应该是所有不同的category 值,以及每个值的出现次数。

【讨论】:

  • @fahim 有最好的答案,在可以避免的情况下,应该始终避免使用(*)
【解决方案2】:

这个怎么样

SELECT field1, count(1) as Total
FROM myTable
GROUP BY field1

【讨论】:

  • 这是最佳实践。如果您可以做其他事情,请始终避免使用(*)
【解决方案3】:

使用COUNT()GROUP BY 按类别将它们组合在一起

【讨论】:

  • 我知道 SQL 语法。事实并非如此。我担心性能。将有近 500 000 个项目,查询将相当繁重,参数很多,因此需要大量时间来计算
猜你喜欢
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-23
  • 2020-10-18
  • 1970-01-01
  • 2021-10-28
  • 2020-12-27
相关资源
最近更新 更多