时间:2021-07-01 10:21:17 帮助过:5人阅读
有一个表,数据是这样的
品名 规格 材质 厂家 价格 城市 添加日期螺纹钢 Φ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的语句,该如何写呢?