id serviceid name cost date
201 15 X 50 25.12.2016
201 15 Y 55 29.11.2016
201 120 Z 50 27.11.2016
201 19 w 50 22 .11.2016
201 158 p 50 23.11.2016
201 18 q 50 21.11.2016
201 16 rs 50 24.11.2016
201 81 rs 50 2.11.2016
202 18 X 50 25.12.2016
202 18 Y 55 29.11.2016
202 15 Z 50 27.11.2016
202 19 w 50 22 .11.2016
203 15 p 50 23.11.2016
203 18 q 50 21.11.2016
203 16 rs 50 24.11.2016
0 81 rs 50 2.11.2016
欲望输出:如何显示的每个记录4每个ID列
id serviceid name cost date
201 15 X 50 25.12.2016
201 15 Y 55 29.11.2016
201 120 Z 50 27.11.2016
201 16 rs 50 24.11.2016
202 18 X 50 25.12.2016
202 18 Y 55 29.11.2016
202 15 Z 50 27.11.2016
202 19 w 50 22 .11.2016
203 15 p 50 23.11.2016
203 18 q 50 21.11.2016
203 16 rs 50 24.11.2016
0 81 rs 50 2.11.2016
我要显示的每个记录4 - 每个ID我试图用自加入申请4记录服务,但有是问题未来请告诉或建议我如何ac-chive为此。
SELECT a.*
FROM mytable AS a
WHERE
(SELECT COUNT(*) FROM mytable AS b
WHERE b.id = a.id and b.serviceid >= a.serviceid) <= 4
ORDER BY a.id , a.date
此查询正在尝试,但我无法获取它为每个ID基于日期应该有4强服务ID。
这将需要模拟MySQL的行号,这是MySQL没有的。但除此之外,你需要给我们保留每组4条记录的逻辑。 –
是的,我必须得到每个ID顶级4 serviceid基于顶级日期喜欢我的愿望输出 –
@TimBiegeleisen它不可能在MySQL?你可以请你建议我 –