找到历史上最高的票房

时间:2013-10-01 20:06:16

标签: mysql sql

我的'订单'表中有以下相关列:

Date_Day(范围从1到31,没有尾随0)

Date_Month(是1月到12月的范围,不是数字)

Date_Year(是4位数格的年份,例如:2005年)

Total(带小数点后2位的数字)

我知道存储日期的方式非常糟糕,但这是我给出的数据库。我试图找到一些东西,我不确定是否有办法在SQL中进行,而不是在PHP中进行数学运算:

  1. 每年每天的总和。

  2. 去年这一天的总和 (这一天是这个月的第n个工作日。所以今天,它 将是2012年10月的第一个星期二)

  3. 票房收入最高 历史上的一天

  4. MySQL不是我的强项,虽然我可以在PHP中找到它,但我很乐意在MySQL中看到它,所以我可以开始学习它了。

1 个答案:

答案 0 :(得分:6)

如果您希望保持数据库结构化,可以使用以下查询:

每年每天的总和:

SELECT Date_Year, Date_Month, Date_Day, SUM(Total)
FROM tablename
GROUP BY Date_Year, Date_Month, Date_Day

去年这一天的总和:

SELECT SUM(Total)
FROM tablename
WHERE
  Date_Year = YEAR(CURDATE())-1
  AND Date_Month = MONTHNAME(CURDATE())
  AND Date_Day = DAY(CURDATE())

历史上收入最高的一天:

SELECT Date_Year, Date_Month, Date_Day, SUM(Total)
FROM tablename
GROUP BY Date_Year, Date_Month, Date_Day
ORDER BY SUM(Total) DESC
LIMIT 1