这个sql怎么写

treker 发布于 2017/02/08 16:27
阅读 380
收藏 2

如下:取每个月内的最小price项的id
    id  name    date           price        
    1   aaa     2016-11-4     100      
    2   aaa     2017-1-4       100      
    3   aaa     2017-1-6       90        
    4   aaa     2017-2-4       120      
    5   aaa     2017-3-4       110      
    6   aaa     2017-3-7       100
    7   aaa     2017-1-9       90 

加载中
0
叶飞飘渺
叶飞飘渺

select id,min(price) as minPrice,date from 表名 group by SUBSTRING_INDEX(date,'-',2)这样就可以了

treker
treker
回复 @叶飞飘渺 : 我用的不是这个数据
叶飞飘渺
叶飞飘渺
回复 @treker : 你说的是这个select id from 表名 a join (select min(price) as minPrice,date from 表名 group by SUBSTRING_INDEX(date,'-',2)) b on a.price = b.minPrice and a.date = b.date ,我这边测试这两个的结果是一样的啊
treker
treker
这么写取出来的值是不对的
treker
treker
大哥,你以前的答案呢......这个不全呀
叶飞飘渺
叶飞飘渺
回复 @风翔飞 : 是 日期类型是可以这么处理,如果是varchar类型的 就要用截取的
下一页
0
魔力猫
魔力猫

说清楚数据库呀。有分析函数功能的非常简单,没有的吐血。

treker
treker
mysql的
0
admin00000
admin00000

将时间函数处理一下成年月 聚合 取出最小

0
treker
treker

。。。。。。。。。。。。

0
风翔飞
风翔飞

SELECT * FROM xxx a WHERE NOT EXISTS (SELECT 1 FROM xxx b WHERE DATE_FORMAT(b.date,'%Y-%m') = DATE_FORMAT(a.date,'%Y-%m') AND b.price<a.price);

0
撰写_记忆
撰写_记忆

SELECT id, MIN(price),date
FROM (SELECT *
    FROM goods
    ORDER BY price ASC) tem
GROUP BY DATE_FORMAT(date,'%Y-%m');

返回顶部
顶部