CREATE TABLE `taobao` (
`UID` int(11) NOT NULL AUTO_INCREMENT COMMENT '唯一自增ID',
`A2` varchar(30) NOT NULL COMMENT '买家会员名',
`A23` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '订单付款时间',
`A26` varchar(50) NOT NULL DEFAULT '' COMMENT '物流单号',
`JF` float(12,2) NOT NULL DEFAULT '0.00' COMMENT '会员积分',
PRIMARY KEY (`UID`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk COMMENT='天猫采集表' AUTO_INCREMENT=5 ;INSERT INTO `taobao` (`UID`, `A2`, `A23`, `A26`, `JF`) VALUES 
(1, 'A2', '2017-09-29 19:15:00', 'A26', 1.00),
(2, 'A2', '2017-09-29 08:00:00', 'A26', 11.00),
(3, 'A2', '2017-09-20 00:00:00', 'A26a', 1.00),
(4, 'A3', '2017-09-20 00:00:00', 'A26b', 11.00);SELECT UID,A2,COUNT(*),SUM(JF) FROM taobao GROUP BY LEFT(A23,8),A2 ORDER BY a23 ASC我用这个方法可以合并了,可是COUNT得出来的值是3笔,我想实现A2与A23中的2017-09-29相同淘宝用户同一天下单先合并为1笔,然后再A2取这个人多天交易记录合并,数值应该为2笔才对,请教如何实现

解决方案 »

  1.   

    既然同一天只算一天,那就统计有多少天就行了呗,所以用
    count(distinct A23) 代替 count(*)
      

  2.   

    你应该先了解一下group by的用法,能获取的字段是哪些, 你上面列出的sql语句是个错误的group by用法
      

  3.   

    你的想法没错,但是你的想法和group by本身的语法是由冲突的,导致计算出来的值不是你想要的。你可以试试1楼的方法,应该可以
      

  4.   

    SELECT UID, A2, count(A2),sum(JF) JF FROM (SELECT UID, A2, count(A2), sum(JF) JF FROM taobao GROUP BY  date_format(A23,'%Y%m%d'), A2 ASC)b GROUP BY A2
      

  5.   

    SELECT UID, A2, count(A2),sum(JF) JF FROM (SELECT UID, A2, count(A2), sum(JF) JF FROM taobao GROUP BY  date_format(A23,'%Y%m%d'), A2 ASC)b GROUP BY A2