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筆才對,請教如何實作
uj5u.com熱心網友回復:
既然同一天只算一天,那就統計有多少天就行了唄,所以用count(distinct A23) 代替 count(*)
uj5u.com熱心網友回復:
你應該先了解一下group by的用法,能獲取的欄位是哪些, 你上面列出的sql陳述句是個錯誤的group by用法uj5u.com熱心網友回復:
你的想法沒錯,但是你的想法和group by本身的語法是由沖突的,導致計算出來的值不是你想要的。你可以試試1樓的方法,應該可以
uj5u.com熱心網友回復:
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 A2uj5u.com熱心網友回復:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/109478.html
標籤:MySQL
上一篇:postgres 服務無法啟動
下一篇:求演算法設計思路
