首页 > 解决方案 > Mysql查询-月份

问题描述

我是 Mysql 的初学者,我有一张这样的表:

create table purchase 
(
    purchase_ID INT primary key,
    purchase_date DATE,
    purchase_price INT
);

Insert into purchase values ('1', '2015-5-30', '10000');
Insert into purchase values ('2', '2016-7-30', '80000');
Insert into purchase values ('3', '2017-8-30', '50000');
Insert into purchase values ('4', '2016-10-30', '90000');

现在的问题是:找出 2016 年哪个月的销售额最高。

注意:将购买价格视为销售价格。

为了找到答案,我尝试了这个 SQL 语句:

SELECT
    MAX(purchase_price) AS sales,
    MONTH(purchase_date) 
FROM
    purchase 
WHERE 
    CAST(purchase_date AS date) BETWEEN '2016-01-01' AND '2016-12-30'

并得到结果

sales   month(purchase_date)
----------------------------
90000         7

但我在一个月内遇到错误,因为第 10 个月的销售额最高,而不是 7,有人可以就此提出建议吗?

标签: mysqlmysql-error-1064

解决方案


找出 2016 年哪个月的销售额最高

SELECT *
FROM purchase 
WHERE purchase_date BETWEEN '2016-01-01' AND '2016-12-30'
ORDER BY purchase_price DESC
LIMIT 1

推荐阅读