假设我们有一张桌子"犯罪"它有2列"活动日期"(没有时区的时间戳)和"邮政编码"(字符变化(5))
例如: 表"犯罪":
activity date zipcode
2014-11-22 00:52:00 12345
2014-10-22 00:52:00 12345
2014-10-24 00:52:00 12345
2014-12-22 00:52:00 54321
...
考虑到开始日期,结束日期和邮政编码,如何计算在给定时间段内比当前邮政编码具有更多犯罪数量的邮政编码的百分比?
答案 0 :(得分:0)
以下是一种快速而令人讨厌的方法来获取比所提供的邮政编码更多计数的邮政编码。然后,您可以使用它来获得百分比。 (可能有更有效的方法来获得它)
SELECT COUNT(zipcode) as numberAbove
FROM (SELECT
zipcode
FROM
crime
WHERE
activitydate >= '<START DATE>'
AND
activitydate < '<END DATE>'
GROUP BY
zipcode
HAVING
COUNT(zipcode) > (select COUNT(zipcode)
from crime
where zipcode = '<ZIP CODE TO USE>'
and activitydate >= '<START DATE>'
and activitydate < '<END DATE>' )) subq;
sqlfiddle = http://sqlfiddle.com/#!15/9e5f3/23