請參見下面的MySQL表。分組按多個列來獲取月份的常用條目
-
-
-- Table structure for table `sample_table`
--
CREATE TABLE IF NOT EXISTS `sample_table` (
`id` bigint(11) NOT NULL AUTO_INCREMENT,
`station` varchar(300) NOT NULL,
`city` varchar(300) NOT NULL,
`reviewcount` int(6) NOT NULL,
`result_month` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
INSERT INTO `sample_table`(`id`, `station`, `reviewcount`, `result_month`) VALUES
(1, 'A','NewYork', 10, 'Jan'),
(2, 'B','NewYork', 12, 'Jan'),
(3, 'C','Florida', 14, 'Jan'),
(4, 'A','NewYork', 12, 'Feb'),
(5, 'B','NewYork', 14, 'Feb'),
(6, 'C','Florida', 20, 'Feb'),
(7, 'D','Washington', 12, 'Feb'),
(8, 'A','NewYork', 14, 'Mar'),
(9, 'B','NewYork', 14, 'Mar'),
(10, 'C','Florida', 28, 'Mar');
在這裏,我需要克服一系列時期同一站的信息。
也就是說,如果我們選擇範圍從1月到3月,應該顯示每個月結果行的站點。
這裏只站A和C是在選定的範圍,即從1至3月
每月檢討計數因此,我需要得到像
A - Jan - 10
C - Jan - 14
A - Feb - 12
C - Feb - 20
A - Mar - 14
C - Mar - 28
我試着GROUP BY結果站,result_month,也嘗試過JOIN的表,但它沒有幫助。
我正在處理一個有數千個工作站的巨大表格,我也需要查詢進行優化。
第二部
我需要得到城市明智的彙總信息也 對輸出應該是什麼樣子,
City -Station Count - Review Count
NewYork - 2 - 22 -Jan
Florida - 1 - 14 - Jan
NewYork - 2 - 26 -Jan
Florida - 1 - 10 - Jan
NewYork - 2 - 28 -Jan
Florida - 1 - 28 - Jan
任何幫助將是非常appreciated.Thanx提前。
在已提供有所述例子是無關組僅有1個WHERE子句站IN(「A」,「C」)。分組用於存在多行時使用相同數據的情況(可能有一些不同點,例如不同的reviewcounts) – Svetoslav
在這種情況下,站點數是以十萬爲單位的。在IN子句中放入十萬個條目是否是一種很好的做法? – suneesh
那些真正的DDL?!?!?Suneesh南亞以外的任何人都不知道什麼是十萬分之一(儘管我接受這是相當多的人)! – Strawberry