怎么了配偶,我已经开始学习SQL数据库的东西,我在这里很困惑。我必须创建一个包含每月事件数量的表格。 我已经知道如何创建表,但其余的?
SELECT
EXTRACT(month FROM dateofcall) AS x,
incidentnumber,
dateofcall
FROM
incidents
GROUP BY
incidentnumber,
x
ORDER BY
x ASC;
但它没有给我每月事件数的结果。 =(
答案 0 :(得分:1)
SELECT
EXTRACT(month FROM dateofcall) AS theMonth,
COUNT(*) AS theNumberOfIncidents
FROM
incidents
GROUP BY
EXTRACT(month FROM dateofcall)
ORDER BY
theMonth
您的原始查询没有计算任何内容。您还按incidentNumber
进行分组,我认为这是您的主键,这是一种无意义的操作。
由于SQL语言中的怪癖,您无法在GROUP BY
语句中使用列别名,这就是您需要复制EXTRACT(month FROM dateofcall)
代码的原因。
答案 1 :(得分:1)
您的GROUP BY子句中的项目看起来太多了,而您没有计算您的事件,只是显示其详细信息。
试试这个:
SELECT EXTRACT(month FROM dateofcall) AS x,
COUNT(*) AS incidents
FROM
incidents
GROUP BY
EXTRACT(month FROM dateofcall)
ORDER BY
EXTRACT(month FROM dateofcall)