0
我有以下簡單的模式:如何返回給定月份的連接記錄數?
CREATE TABLE POSTS (
ID INT NOT NULL,
DATE DATE NOT NULL,
[Other stuff omitted]
);
CREATE TABLE TOPICS (
ID INT NOT NULL,
[Other stuff omitted]
);
CREATE TABLE THETA (
POST_ID INT NOT NULL,
TOPIC_ID INT NOT NULL,
WEIGHT FLOAT NOT NULL
);
我有一個查詢到所有崗位總和的重量在THETA,按日期和主題ID分組:
SELECT THETA.TOPIC_ID as TopicID, POSTS.DATE as Date, SUM(THETA.WEIGHT) as Value
FROM POSTS INNER JOIN THETA
WHERE THETA.POST_ID=POSTS.ID
GROUP BY YEAR(POSTS.DATE), MONTH(POSTS.DATE), TopicID;
可正常工作,給結果是這樣的:
+---------+------------+---------------------+
| TopicID | Date | Value |
+---------+------------+---------------------+
| 0 | 2008-08-19 | 350.4930010139942 |
| 0 | 2008-09-18 | 1745.5010008439422 |
| 0 | 2008-10-03 | 1468.824001269415 |
| 0 | 2008-11-25 | 1079.579000659287 |
| 0 | 2008-12-11 | 1070.3860008455813 |
| 0 | 2009-01-24 | 1453.3730010837317 |
| 0 | 2009-02-20 | 1139.2920009773225 |
| 1 | 2008-08-19 | 288.09700035490096 |
| 1 | 2008-09-22 | 1307.5790000930429 |
| 1 | 2008-10-16 | 1050.1739999558777 |
| 1 | 2008-11-11 | 868.2280002105981 |
| 1 | 2008-12-18 | 897.6830000579357 |
| 1 | 2009-01-12 | 1148.5619999151677 |
| 1 | 2009-02-12 | 858.0710002686828 |
| 2 | 2008-08-19 | 415.83300026878715 |
...
但是,我想通過該月的帖子數規範化價值。例如,如果月份2008-08-19
中有100個帖子,則第一個結果行的值爲3.50493,八個結果行的值爲2.88097。面臨的挑戰是每月的帖子數量不盡相同,所以我不太確定該怎麼做。有任何想法嗎?
這將由每人每月主題無關的帖子正常化,而不是每月的所有帖子 – Quassnoi
@Quassnoi感謝,misssed的TopicID在'GROUP BY'更新。 –
@GoatCO。謝謝你。我試了一下,得到以下錯誤:「錯誤1054(42S22):'字段列表'」中的'THETA.TOPIC_ID'列未知。 – stepthom