MySQL Group使用时间戳按天结果

Web*_*net 28 mysql timestamp

我需要进行以下查询并提取按日分组的订单总数和总和.我正在使用时间戳存储所有内容.

SELECT
    COUNT(id) as order_count,
    SUM(price + shipping_price) as order_sum,
    DAY(FROM_UNIXTIME(created)) as day
FROM `order`
WHERE '.implode(' AND ', $where).'
Run Code Online (Sandbox Code Playgroud)

我需要在DAY进行分组,但是当我为上周末的销售工作时,它需要我的order_count并将其设为1而不是3.我如何提取按天分组的上述值?

注意:implode仅用于定义时间段(WHERE创建> = TIMESTAMP AND <= TIMESTAMP)

更新

没有GROUP BY day

Array ( 
    [order_count] => 3
    [order_sum] => 69.70
    [day] => 17
)
Run Code Online (Sandbox Code Playgroud)

使用GROUP BY day

Array ( 
    [order_count] => 1
    [order_sum] => 24.90
    [day] => 17
)
Run Code Online (Sandbox Code Playgroud)

我需要此查询来返回每天有销售,订单数量和销售额的总和.我在这里错过了一块拼图....

mač*_*ček 41

GROUP BY ...最后忘记添加了吗?

SELECT
    COUNT(id) as order_count,
    SUM(price + shipping_price) as order_sum,
    DAY(FROM_UNIXTIME(created)) as order_day
FROM `order`
WHERE '.implode(' AND ', $where).'
GROUP BY order_day
Run Code Online (Sandbox Code Playgroud)

注意:

您不能使用as day您的日期列,因为day它是MySQL函数.使用类似的东西order_day.

独角兽

根据@OMG Unicorn的评论,您可以使用:

DAY(FROM_UNIXTIME(created)) as `day`
Run Code Online (Sandbox Code Playgroud)

只要包裹day'反引号中.