【发布时间】:2009-05-15 22:48:05
【问题描述】:
我有一张桌子,上面有设备、他们的购买国家和购买日期。 我想检索: - 按国家/地区划分的设备总数 - 以及每个国家/地区自 1 个月以来购买的设备数量。
我使用这个请求来做这个:
SELECT countryCode, COUNT(*) AS sinceBeginning, (
SELECT COUNT(*)
FROM mytable
WHERE countryCode = table1.countryCode
AND buyedDate >= DATE_SUB( CURDATE( ) , INTERVAL 1 MONTH )
) AS sinceOneMonth
FROM mytable AS table1
GROUP BY countryCode
ORDER BY countryCode ASC";
但是每一行的“sinceOneMonth”列的内部计数对于性能来说是非常昂贵的。 有没有办法让这个请求更好? 谢谢。
【问题讨论】: