資料庫中的測試資料如下所示,
想要統計某個時間段內的使用者來與沒來的情況,最終展示結果如下所示:
SQL測試語句:
CREATE TABLE test
(
id
int(11) NOT NULL AUTO_INCREMENT,
come_date
date NOT NULL COMMENT '日期',
username
varchar(255) NOT NULL,
PRIMARY KEY (id
),
KEY username
(username
)
) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=utf8
INSERT INTO test
VALUES (1, '2015-7-1', 'test_1');
INSERT INTO test
VALUES (2, '2015-7-1', 'test_2');
INSERT INTO test
VALUES (3, '2015-7-1', 'test_3');
INSERT INTO test
VALUES (4, '2015-7-2', 'test_1');
INSERT INTO test
VALUES (5, '2015-7-2', 'test_2');
INSERT INTO test
VALUES (6, '2015-7-2', 'test_3');
INSERT INTO test
VALUES (7, '2015-7-5', 'test_1');
INSERT INTO test
VALUES (8, '2015-7-5', 'test_2');
INSERT INTO test
VALUES (9, '2015-7-5', 'test_3');
INSERT INTO test
VALUES (10, '2015-7-5', 'test_4');
INSERT INTO test
VALUES (11, '2015-7-7', 'test_2');
INSERT INTO test
VALUES (12, '2015-7-7', 'test_3');
INSERT INTO test
VALUES (13, '2015-7-7', 'test_6');
INSERT INTO test
VALUES (14, '2015-7-7', 'test_7');
INSERT INTO test
VALUES (15, '2015-7-7', 'test_8');
INSERT INTO test
VALUES (16, '2015-7-7', 'test_9');
INSERT INTO test
VALUES (17, '2015-7-7', 'test_10');
INSERT INTO test
VALUES (18, '2015-7-7', 'test_11');
INSERT INTO test
VALUES (19, '2015-7-8', 'test_2');
INSERT INTO test
VALUES (20, '2015-7-8', 'test_3');
INSERT INTO test
VALUES (21, '2015-7-8', 'test_10');
INSERT INTO test
VALUES (22, '2015-7-8', 'test_11');
INSERT INTO test
VALUES (23, '2015-7-9', 'test_1');
INSERT INTO test
VALUES (24, '2015-7-9', 'test_10');
回複內容:
資料庫中的測試資料如下所示,
想要統計某個時間段內的使用者來與沒來的情況,最終展示結果如下所示:
SQL測試語句:
CREATE TABLE test
(
id
int(11) NOT NULL AUTO_INCREMENT,
come_date
date NOT NULL COMMENT '日期',
username
varchar(255) NOT NULL,
PRIMARY KEY (id
),
KEY username
(username
)
) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=utf8
INSERT INTO test
VALUES (1, '2015-7-1', 'test_1');
INSERT INTO test
VALUES (2, '2015-7-1', 'test_2');
INSERT INTO test
VALUES (3, '2015-7-1', 'test_3');
INSERT INTO test
VALUES (4, '2015-7-2', 'test_1');
INSERT INTO test
VALUES (5, '2015-7-2', 'test_2');
INSERT INTO test
VALUES (6, '2015-7-2', 'test_3');
INSERT INTO test
VALUES (7, '2015-7-5', 'test_1');
INSERT INTO test
VALUES (8, '2015-7-5', 'test_2');
INSERT INTO test
VALUES (9, '2015-7-5', 'test_3');
INSERT INTO test
VALUES (10, '2015-7-5', 'test_4');
INSERT INTO test
VALUES (11, '2015-7-7', 'test_2');
INSERT INTO test
VALUES (12, '2015-7-7', 'test_3');
INSERT INTO test
VALUES (13, '2015-7-7', 'test_6');
INSERT INTO test
VALUES (14, '2015-7-7', 'test_7');
INSERT INTO test
VALUES (15, '2015-7-7', 'test_8');
INSERT INTO test
VALUES (16, '2015-7-7', 'test_9');
INSERT INTO test
VALUES (17, '2015-7-7', 'test_10');
INSERT INTO test
VALUES (18, '2015-7-7', 'test_11');
INSERT INTO test
VALUES (19, '2015-7-8', 'test_2');
INSERT INTO test
VALUES (20, '2015-7-8', 'test_3');
INSERT INTO test
VALUES (21, '2015-7-8', 'test_10');
INSERT INTO test
VALUES (22, '2015-7-8', 'test_11');
INSERT INTO test
VALUES (23, '2015-7-9', 'test_1');
INSERT INTO test
VALUES (24, '2015-7-9', 'test_10');
這裡面有裡想要的答案:
http://blog.itpub.net/29254281/viewspace-1385638
這個是必須要以資料庫表的形式展現嗎?如果沒必要的話 可以select * from from test where come_date between '2015-07-01' and '2015-07-09' 對資料取出後 用後台語言處理 比較好做
如果必須要以sql查出所需結果,select aa.username,group_concat(DAY(come_date)),sum(1) from (select come_date,username from test where come_date between '2015-07-01' and '2015-07-09') aa group by aa.username;