【问题标题】:A way to count with column items一种用列项目计数的方法
【发布时间】:2013-01-17 21:59:20
【问题描述】:

我有一个ordered_products 表,其中包含所有订购的产品。假设我有一个名为 trouser1 的产品。例如,当我有 order1 和 order2 并且这两个订单中都有 trouser1 时,它会添加到ordered_products:

order_id=1 name=trouser1 amount=1
order_id=2 name=trouser1 amount=1

现在我想列出已售产品的前 10 名,但同一产品需要在我的表格中显示一次,但数量相加。

我尝试了类似以下的方法:

SELECT *
FROM ordered_products
GROUP BY naam
ORDER BY aantal DESC
SUM(amount)
WHERE name NOT UNIQUE

不行,有什么办法吗?

【问题讨论】:

  • GROUP BY naam 附近的错字应该是GROUP BY name

标签: mysql sql select


【解决方案1】:

这将显示销售产品的前 10 名列表,

SELECT  name, SUM(amount) totalAmount
FROM    ordered_products
GROUP BY name
ORDER BY totalAmount DESC
LIMIT 10

为了获得更好的性能,请在列 name 上提供索引。

【讨论】:

    【解决方案2】:
    Select top 10 name, sum(amount)
    from ordered_products
    group by name
    order by sum(amount ) desc
    

    它应该工作。 ;) 你只需要显示你正在计算的总和。不只是按它订购。 *不会为你做。

    【讨论】:

    • 确实存在混淆的空间,但我认为 OP 使用 MySQL
    • 这也是正确的,因为SQL Server 使用TOP 但不幸的是MySQL 使用的是LIMIT
    • 只是看到我以某种方式错过了MySQL 标签。这种方式当然limit,是正确答案。
    猜你喜欢
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 2022-01-26
    相关资源
    最近更新 更多