qq_17202783
未央帝
采纳率16.7%
2015-11-09 01:11 阅读 2.1k

MYSQL如何进行多字段同时筛选,获取不同的值

10

有一个表,数据是这样的

 品名 规格  材质  厂家  价格  城市  添加日期
螺纹钢   Φ12-14 HRB400E 成实  2370    北京  2015-11-6 10:33
螺纹钢   Φ12-14 HRB400E 龙钢  2370    北京  2015-11-6 10:33
螺纹钢   Φ12-14 HRB400E 德胜  2370    北京  2015-11-6 10:33
螺纹钢   Φ12-14 HRB400E 威钢  2440    北京  2015-11-6 10:33
螺纹钢   Φ16-25 HRB400E 新钢业   2300    广州  2015-11-6 10:23
螺纹钢   Φ16-25 HRB400E 水钢  2300    广州  2015-11-6 10:23
螺纹钢   Φ16-25 HRB400E 攀钢  2300    广州  2015-11-6 10:23
高线  Φ6.5-10    HPB300  山西中阳    2340    上海  2015-11-6 10:13
高线  Φ6.5-10    HPB300  山西立恒    2340    上海  2015-11-6 10:13
高线  Φ6.5-10    HPB300  龙钢  2340    上海  2015-11-6 10:13
螺纹钢   Φ16-25 HRB400E 山西建邦    2370    武汉  2015-11-6 10:22
螺纹钢   Φ16-25 HRB400E 龙钢  2370    武汉  2015-11-6 10:22
螺纹钢   Φ16-25 HRB400E 德胜  2370    武汉  2015-11-6 10:22
螺纹钢   Φ8-10  HRB400E 威钢  2430    武汉  2015-11-6 10:22

想获得:
根据时间 、城市 、品名,同时判断这三个字段,获取不同的值,然后每个值只取其中一条。
按添加时间排序。形成列表。表里(有ID字段的)

MSSQL是这样的,可以实现:

 select  *
            from (select *,rank() over (partition by AddDate,City order by ID) rn
            from mart  WHERE Title = '螺纹钢' and DATEDIFF(day,AddDate,getdate())<4 ) t
            where rn=1 ORDER BY AddDate DESC

现在我想把它转换成MYSQL的语句,该如何写呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • qq_17202783 未央帝 2015-11-09 03:39

    求助啊,都没人懂么?

    点赞 评论 复制链接分享
  • freedamjustice freedamjustice 2015-11-09 09:10

    select a.* from (select 时间 、城市 、品名 from warn_warning ORDER BY create_date DESC) a group by group by a.时间 、a.城市 、a.品名。
    楼主你想要的查询主要是使用group by,可以自己再看看用法

    点赞 评论 复制链接分享
  • resset resset 2015-11-09 10:24

    楼上正解 使用group by 时间 、城市 、品名来分组操作

    点赞 评论 复制链接分享

相关推荐