请参阅下面的表结构:
-- Table structure for table `station_listing`
CREATE TABLE IF NOT EXISTS `station_listing`(
`id` bigint(11) NOT NULL AUTO_INCREMENT,
`lid` bigint(11) NOT NULL,
`cid` bigint(11) NOT NULL,
`name` varchar(300) NOT NULL,
`type` enum('homeservices','restaurants') NOT NULL,
`location` varchar(300) NOT NULL,
`stationID` varchar(300) NOT NULL,
`claimed` tinyint(1) NOT NULL,
`closed` tinyint(1) NOT NULL,
`reviewcount` int(6) NOT NULL,
`rating` decimal(10,1) NOT NULL,
`city` varchar(300) NOT NULL,
`categories` varchar(300) NOT NULL,
`dealcount` int(6) NOT NULL,
`result_month` varchar(10) NOT NULL,
`updated_date` date NOT NULL,
PRIMARY KEY (`id`),
KEY `stationID` (`stationID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
-- Dumping data for table `station_listing`
INSERT INTO `station_listing`(
`id`, `lid`, `cid`, `name`, `type`, `location`,
`stationID`, `claimed`, `closed`, `reviewcount`, `rating`, `city`,
`categories`, `dealcount`, `result_month`, `updated_date`
) VALUES (
310837, 115, 151, 'Apartment Building', 'homeservices', 'West Hollywood',
'apartment-building-los-angeles', 0, 0, 1, '1.0', 'Los Angeles',
'apartments', 0, 'Jan', '2014-01-15'
), (
314, 4, 1, 'King of Shawarma', 'restaurants', 'Calgary',
'king-of-shawarma-calgary-2', 0, 0, 0, '0.0', 'Calgary',
'afghani,halal,falafel', 0, 'Jan', '2014-02-14');
我有一张表格,其中包含每个月更新的不同业务的详细信息。
stationID
每个月都会使用其参数更新一次。
我需要获取在选定的月份范围内常见的stationID。例如,如果我选择从1月到3月的范围,这应该获取所有常见的飞蛾JAn,Feb和MAr。
我们尝试GROUP BY
对几个月内出现的所有电台进行分组。
我面临以下问题,
当我尝试查询时:
SELECT stationID FROM station_lisitng GROUP BY `stationID``
我正在获取stationIDs
但是在尝试获取多个列时,例如:
SELECT id, stationID FROM station_lisitng GROUP BY `stationID`;
我们得到并且phpMyAdmin错误为'显示0到-1结果',我们既没有得到结果也没有计算结果。
我们的表包含大量条目(100万),我们怀疑分组是否会造成麻烦。除此之外还有带特殊字符的电台ID!
stationID
列已编入索引,并且是每个工作站唯一可识别的实体。
SELECT id, stationID FROM station_lisitng GROUP BY `stationID` LIMIT 0,900000`
上述工作但耗费了大量时间。
如果你能帮助我们用stationID对这个表进行分组,那就太棒了。
我们尝试了以下查询,我们对其性能并不满意:
SELECT `stationID`, name, lid, cid, type, location, COUNT(*) c FROM `yc_biz_listing` WHERE DATE_FORMAT(`updated_date`, '%m %Y') BETWEEN '01 2014' AND '03 2014' GROUP BY `yelpID` HAVING c = 3
任何帮助都将受到高度赞赏。提前谢谢。