如何使用结果表来创建另一个表

时间:2012-11-30 15:22:40

标签: mysql sql database

我有以下代码:

SELECT CD_NO, COUNT(purchasedate) AS most_sales
FROM Artist
GROUP BY CD_NO

这将返回每张CD的销售额,因为每次销售CD都有一个购买者条目。但是,我希望从中找出每个CD_NO的销售额最多的日期,而不是显示当天显示most_sales日期的数字。因此,它会根据特定CD转换购买日期的输入,然后对其进行计数并找到特定purchase_date上的最大购买数量。

例如,输入此输入:

CD_NO          purchasedate
1              2012-04-04
1              2012-04-04
1              2012-04-03
2              2012-04-03
2              2012-04-03
2              2012-04-03
2              2012-04-02

然后把它变成:

CD_NO           most_sales
1               2012-04-04
2               2012-04-03

这是因为它会计算CD_NO的不同日期,然后返回哪个日期最多。

3 个答案:

答案 0 :(得分:0)

SELECT CD_NO, COUNT(purchasedate) AS most_sales
INTO [NEW TABLE NAME] 
FROM Artist
GROUP BY CD_NO

所有你必须把它放入一个语句中,结果将转到一个基本级别的新表

答案 1 :(得分:0)

SELECT CD_NO, COUNT(purchasedate) AS most_sales
INTO ARTIST_SALES
FROM Artist
GROUP BY CD_NO

这应该有用,它会创建一个名为ARTIST_SALES的表(您可以更改它),您也可以考虑在第二个表中添加艺术家ID,这样您就可以选择每个艺术家的总结销售额。

编辑:

我没有意识到你使用的是mysql,不支持select into,你应该首先创建一个新表,例如

CREATE TABLE Artist_Sales (
  CD_NO INT NOT NULL,
  SALES_COUNT INT NOT NULL
);

然后执行插入, 例如:

INSERT INTO Artis_Sales (CD_NO,SALES_COUNT)
SELECT CD_NO, COUNT(purchasedate) 
FROM Artist
GROUP BY CD_NO
祝你好运

答案 2 :(得分:0)

你能不能这样做:

通过CD_NO从艺术家群组中选择CD_NO,MAX(PURCHASEDATE)