Mysql 聚合后选择最大的列

Mysql picking the greatest columna after aggregation

我有 table 件已售出的商品,具有指定的名称、日期、时间和售出商品数量。

我需要做的是每天找出(任何类型的)最大数量商品售出的时间,以及 return 包含日期和金额的两列 table项目数。

我设法做的是计算每小时的商品总和,但是如何选择商品销售量最大的时间并将其与一天一起显示?

这是我糟糕的 sqlfiddle 尝试:http://sqlfiddle.com/#!9/93b51/17/0

select day, hour, sum(amount) as suma 
from sold_items 
group by day, hour
select day, max(suma)
from
(
    select day, hour, sum(amount) as suma 
    from sold_items 
    group by day, hour
) tmp
group by day

SQLFiddle

您需要将您的查询与 juergen d 每天获得最大小时量的查询合并。

SELECT a.day, a.hour, a.suma
FROM (
    select day, hour, sum(amount) as suma 
    from sold_items 
    group by day, hour) AS a
JOIN (
    select day, max(suma) AS maxsuma
    from (
        select day, hour, sum(amount) as suma 
        from sold_items 
        group by day, hour) AS tmp
    group by day) AS b
ON a.day = b.day AND a.suma = b.maxsuma

DEMO

这遵循与 SQL Select only rows with Max Value on a Column 相同的模式,除了在这种情况下,您使用计算聚合的子查询来执行此操作,而不是直接来自 table 的数据。