我搜寻了很多东西,尝试了很多方法,但仍然没有找到即时结果,所以这里就是问题所在
这是我的领域
cntrycd | date | type | desc | value
tn | 2013-08-16 | pr | for | 112 <--
tn | 2013-08-15 | pr | for | 114
tn | 2013-08-14 | pr | for | 118
tn | 2013-08-16 | pr | agn | 118 <--
tn | 2013-08-15 | pr | agn | 117
tn | 2013-08-14 | pr | agn | 112
tn | 2013-08-15 | pr | mid | 114
tn | 2013-08-14 | pr | mid | 118
tn | 2013-08-16 | pr | mid | 118 <--
tn | 2013-08-15 | pr | agn | 117
tn | 2013-08-16 | ot | for | 112 <--
tn | 2013-08-15 | ot | for | 114
tn | 2013-08-14 | ot | for | 118
tn | 2013-08-16 | ot | agn | 118 <--
tn | 2013-08-15 | ot | agn | 117
tn | 2013-08-14 | ot | agn | 112
tn | 2013-08-15 | ot | mid | 114
tn | 2013-08-14 | ot | mid | 118
tn | 2013-08-16 | ot | mid | 118 <--
我想要的是获取最大日期和相应的值,所以它看起来像这样
tn | 2013-08-16 | pr | for | 112
tn | 2013-08-16 | pr | agn | 118
tn | 2013-08-16 | pr | mid | 118
tn | 2013-08-16 | ot | for | 112
tn | 2013-08-16 | ot | agn | 118
tn | 2013-08-16 | ot | mid | 118
现在,我的搜索总是说执行子功能并获取最大日期,然后执行联接并联接到最大日期,但我仍然没有得到我想要的信息,我了解它的逻辑,我只是不明白为什么我没有得到正确的价值观
根据需要进行调整...
SELECT x.*
FROM my_table x
JOIN
( SELECT `cntryd`
, `type`
, `desc`
, MAX(date) max_date
FROM my_table
GROUP
BY `cntryd`
, `type`
, `desc`
) y
ON y.cntryd = x.cntryd
AND y.type = x.type
AND y.desc = x.desc
AND y.max_date = x.date;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句