如何将表A中的列分组到表B中的另一列? SQL

时间:2014-10-23 05:55:07

标签: sql sql-server group-by

我对SQL服务器比较新。我想知道是否可以使用表A中的一列的GROUP BY到表B中的另一列的GROUP BY ...我已经尝试了这段代码...我感谢您的所有回复。

SELECT SUM(total_likes) 
FROM MSN
GROUP BY 
SELECT * month_ 
FROM POSTINGTABLE;

1 个答案:

答案 0 :(得分:1)

您的查询问题在于您没有说如何将MSN加入POSTINGTABLE。如果您的MSN表如下所示:

MSNId INT,
total_likes INT,
name VARCHAR(50),
url VARCHAR(255)
...etc.

...您的发布表如下所示:

MSNId INT,
month_ INT,
year_ INT,
posting_information VARCHAR(255)
...etc.

然后你的伪查询说,“将来自MSN的总喜欢加起来,并在POSTINGTABLE中每个月列出这个数字”。如果在MSN中总共有100,000个喜欢,那么你会得到一个如下所示的答案:

  • 1月 - 100,000
  • 2月 - 100,000
  • 3月 - 100,000
  • 4月 - 100,000

因此,您需要定义如何将total_likes与每个月“桶”相关联。您的查询可能最终看起来像这样:

SELECT
    pt.[month_],
    SUM([total_likes]) 
FROM 
    MSN m
    INNER JOIN POSTINGTABLE pt ON pt.SomeId = m.SomeId --Where SomeId is how to join MSN to POSTINGTABLE
GROUP BY 
    pt.[month_]

现在你的结果应该更像这样:

  • 1月 - 30,000
  • 2月 - 40,000
  • 3月 - 20,000
  • 4月 - 10,000