mysql 实现分类统计

 要实现一个sql解决对应时间段的总金额的统计。时间段分为0~10天11~20天 21~30天,类似这种。

在网上查到相关的解决方案:
使用INTERVAL 函数实现。


网上的解释如下:
INTERVAL(N,N1,N2,N3,……….)
INTERVAL()函数进行比较列表(N1,N2,N3等等)中的N值。该函数如果N

mysql>SELECT INTERVAL(6,1,2,3,4,5,6,7,8,9,10);
+---------------------------------------------------------+
| INTERVAL(6,1,2,3,4,5,6,7,8,9,10)                        |
+---------------------------------------------------------+
| 6                                                       |
+---------------------------------------------------------+

1 row in set (0.00 sec)
请记住,6是从零开始的索引,列表第一个值的值大于N. 在我们的例子中,7是错误的值,它是位于第六索引插槽。


根据这个解释写了如下的sql,注意INTERVAL 只能比较数字类型的字段,如果想比较时间段,需要转换为时间戳的格式(使用unix_timestamp)。

SELECT
    SUM(t2.pay_amount),
    INTERVAL (unix_timestamp(t1.confirm_date), unix_timestamp(NOW()),unix_timestamp(date_add(NOW(),INTERVAL 30 DAY)),unix_timestamp(date_add(NOW(),INTERVAL 60 DAY)))
     as aaa,t1.confirm_date,NOW()
FROM
    materiel_purchase_account_period t1
LEFT JOIN materiel_purchase_order_info t2 ON t1.order_no = t2.order_no      where  co
GROUP BY 
    INTERVAL (unix_timestamp(t1.confirm_date), unix_timestamp(NOW()),unix_timestamp(date_add(NOW(),INTERVAL 30 DAY)),unix_timestamp(date_add(NOW(),INTERVAL 60 DAY)))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值