我有一个名为 DemoTable 的表包含一些字段,如 com_name , updated_date , demo_var ,我查询了它喜欢
select * from DemoTable where demo_var=100;
所以例如这里我有1000条记录。在此1000条记录中,我想根据 updated_date
查询以获取 com_name 的最新更新行我的表格似乎是
id demo_var com_name updated_date
1 100 XYZ 2017-11-10
2 100 XYZ 2017-11-09
3 100 ABC 2017-10-10
4 100 ABC 2017-10-11
5 150 AJD 2017-11-11
首先,我想知道demo_var = 100的位置,并获取更新后的最后一个com_name。
例如
2 100 XYZ 2017-11-09
3 100 ABC 2017-10-10
我希望获取这两个记录。
答案 0 :(得分:1)
要实现每组第二个最新行,您可以使用以下查询
select a.*
from demo a
where a.demo_var = 100
and (
select count(*)
from demo b
where b.demo_var = 100
and a.com_name = b.com_name
and case when a.updated_date = b.updated_date
then a.id > b.id
else a.updated_date < b.updated_date
end
) = 1 /* here 1 is for second last , 0 for latest and so on */
注意它按
updated_date
比较行,所以如果有相同的updated_date和com_name有2行,那么我已经使用id列来选择第二个最后一行,并假设id列默认设置为自动增量< / p>
答案 1 :(得分:0)
以下查询将起作用:
class Parent extends React.Component {
constructor() {
super()
this.clickBox = this.clickBox.bind(this)
}
clickBox() {
...
}
render() {
return (
<div>
<Child onClick={this.clickBox}
</div>
)
}
}