我有以下列名称的表 我们有多个约会的日期,其中多个约会有30秒的日期槽 我需要根据对bin的最后一个条目提取数据
假设1990025I
仅在今天查询时有100个条目,当我确实找到所有按条目分类的条目时,我需要最后一个输入记录
对于基数为一个的Bin查询
select * from battery_data where tcu_date_ist =(
SELECT MAX(tcu_date_ist) FROM battery_data WHERE bin='1990051I');
如何获取所有Bin组查询,并且还需要其中的latitude
,longitude
列
SELECT latitude, longitude, bin,created_date
FROM public.battery_data
group by latitude, longitude, bin ,created_date
ORDER BY created_date DESC
输出变得像
12.966 77.5841 "1990025I" "2019-11-18 12:53:11.984+05:30"
13.0007 77.6128 "1990074I" "2019-11-18 12:53:11.522+05:30"
12.9567 77.68 "1990088I" "2019-11-18 12:53:10.663+05:30"
12.9714 77.58 "1990123I" "2019-11-18 12:53:10.45+05:30"
0 0 "1980020I" "2019-11-18 12:53:10.151+05:30"
12.966 77.5841 "1990025I" "2019-11-18 12:53:10.001+05:30"
13.0952 77.5949 "M10299171990132I" "2019-11-18 12:53:09.922+05:30"
12.9936 77.7478 "1990006I" "2019-11-18 12:53:08.718+05:30"
答案 0 :(得分:1)
SELECT DISTINCT ON (bin) *
FROM public.battery_data
ORDER BY bin, created_date DESC
答案 1 :(得分:0)
在内部查询和外部查询中,您都需要按bin
进行过滤:
select bd.*
from battery_data bd
where bd.bin = '1990051I' and
bd.tcu_date_ist = (select max(bd2.tcu_date_ist)
from battery_data bd2
where bd2.bin = bd.bin
);
或者,如果您只想使用order by
和limit
:
select bd.*
from battery_data bd
where bd.bin = '1990051I'
order by bd.tcu_date_ist desc
limit 1;
答案 2 :(得分:0)
这不是吗?
select * from battery_data where tcu_date_ist in(
SELECT MAX(tcu_date_ist) FROM battery_data group by bin);