我有以下查询工作正常,除了它没有按照我的意愿分组:
SELECT
oee_main_interim.id,
oee_main_interim.NAME,
oee_main_interim.S_TYPE
FROM
oee_main_interim
WHERE
oee_main_interim.S_TYPE <>0
GROUP BY
oee_main_interim.id, oee_main_interim.NAME
HAVING
oee_main_interim.id= max(oee_main_interim.id)
所有3个字段都是INT类型。查询通过不按NAME分组返回id的最大值,而是列出多个NAME。我想要的只是:最大ID,相应的NAME和相应的S_TYPE。所以我的输出应该是这样的:
ID NAME S_TYPE
1234 1 2
1345 2 1
1456 3 2
1567 4 2
ID为每个NAME的表格的最大ID ...
表oee_main_interim
中的原始数据如下:
所以我想要的是选择每个NAME的最大ID并显示其相关的S_TYPE(如上所示)和S_TYPE&lt;&gt; 0。
我的所有列的完整表格如下:
答案 0 :(得分:0)
此查询使用派生表,将为您提供每个名称的最大ID及其s_type:
for(Tile tile: (half of)tiles){
tile.draw();
}
或者你可以使用相关的子查询:
Select
oee_main_interim.id,
oee_main_interim.NAME,
oee_main_interim.S_TYPE
From
oee_main_interim
Join
(
select max(id) max_id, name from oee_main_interim group by name
) a on a.name = oee_main_interim.name and a.max_id = oee_main_interim.id
Where
oee_main_interim.S_TYPE <> 0