我有一个名为eprism_reports的表,表格如下
当我使用查询时,在此表中
$query = $request->yourArrName
在再次获得结果集后,我想删除重复的TAG_NAME,并且在该重复的TAG_NAME中应该出现唯一的TAG_NAME,并且RERUN应该是最大的
示例:在Resultset中我们有两个标记名重复名称mytag我想要一个与ReRUn唯一的标记名应该像往常一样MAX和剩余ResultSet。请帮我这个
预期结果应如下:
SELECT *
FROM eprism_dashboard.eprism_reports
where CARRIER_NAME='QA_T_MOB'
答案 0 :(得分:1)
SELECT TAG_NAME, MAX(RERUN)
FROM eprism_dashboard.eprism_reports
where CARRIER_NAME='QA_T_MOB'
GROUP BY TAG_NAME
答案 1 :(得分:1)
您可以尝试像这样的查询=> http://sqlfiddle.com/#!9/057184/1
为每个Max(rerun)
选择tag group
值,然后按joining on rerun and tag column
SELECT t.*
FROM eprism_reports t
JOIN ( SELECT MAX(rerun) rerun
, tag
FROM eprism_reports
GROUP BY tag ) t2
ON( t.tag = t2.tag
AND t.rerun = t2.rerun )
答案 2 :(得分:1)
我只会将subquery
与相关方法一起使用:
select e.*
from eprism_reports e
where CARRIER_NAME='QA_T_MOB' and
id = (select id
from eprism_reports
where TAG_NAME = e.TAG_NAME
order by rerun DESC
LIMIT 1);
您也可以将其表达为:
select e.*
from eprism_reports e
where CARRIER_NAME='QA_T_MOB' and
RERUN = (select max(RERUN) from eprism_reports where TAG_NAME = e.TAG_NAME);
答案 3 :(得分:0)
要获得每组最高的重新运行行,您可以进行自我加入
select a.*
from eprism_reports a
left join eprism_reports b on a.CARRIER_NAME = b.CARRIER_NAME
and a.TAG_NAME = b.TAG_NAME
and a.RERUN < b.RERUN
where a.CARRIER_NAME='QA_T_MOB'
and b.CARRIER_NAME is null