gpt4 book ai didi

mysql - 为每个 id 选择最近的行

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:20 26 4
gpt4 key购买 nike

我有下面两个表,一个是主表,第二个是详细信息表。我需要详细信息表中的最新行,如果详细信息表没有相应行的详细信息,那么它应该显示该 ID 的空白行和主表信息。

我使用了下面的查询,但没有给出所需的输出

select st.Station_Id,st.id,st.StationType,st.stationname,st.Latitude,st.Longitude, max  (pump.LastUpdate)

来自 sgwebdb.stations 的 LastUpdate、pump.daily_abstraction、pump.water_level 作为 st左外连接 sgwebdb.pump_station_data as pump on st.station_id = pump.station_id其中 st.DeletionDate 为空且 st.stationtype = 'pump station'按 st.station_id 分组;

主表站

ID Station_ID StationType StationName Latitude Longitude

1 Pump0 泵站 ABC 5.555 100.45782 泵 1 泵站 DEF 5.555 100.45783 泵 2 泵站 GHI 5.555 100.45784 Pump3 泵站 JKL 5.555 100.45785 Pump4 泵站 MNO 5.555 100.45786 Pump5 泵站 PQR 5.555 100.45787 泵 6 泵站 STU 5.555 100.45788 Pump7 泵站 VXY 5.555 100.45789 泵 8 泵站 ZAB 5.555 100.457810 Pump9 泵站 CDE 5.555 100.457811 Pump10 泵站 FGH 5.555 100.457812 Pump11 泵站 IJK 5.555 100.457813 泵 12 泵站 LMN 5.555 100.457814 Pump13 泵站 OPR 5.555 100.457815 泵 14 泵站 QST 5.555 100.457816 Pump15 泵站 UVW 5.555 100.4578

详细表名称:pump_station_data`

id    Station_id    lastupdate      hrl_abst daily_abst Water_Level
3 Pump15 2014-05-13 12:45:00 23 45 8
4 Pump0 2014-05-20 01:01:00 1 1 1
5 Pump0 2014-07-02 12:00:00 15.41 15.41 51.95
6 Pump0 2014-07-03 12:00:00 0.9 21.6 26.65
7 Pump1 2014-07-03 01:30:00 0 0 21.69
8 Pump0 2014-07-05 09:20:00 20 20 26.7535
9 Pump1 2014-07-05 11:25:00 20 20 21.69
10 Pump2 2014-07-05 15:10:00 20 20 9.4287
11 Pump3 2014-07-05 15:45:00 20 20 6.2608
12 Pump4 2014-07-05 13:25:00 20 20 2.2636
13 Pump5 2014-07-05 16:31:00 20 20 2.2832
14 Pump6 2014-07-05 16:38:00 20 20 2.1249
15 Pump7 2014-07-05 17:35:00 20 20 10
16 Pump8 2014-07-05 17:35:00 20 20 10
17 Pump9 2014-07-05 19:36:00 20 20 2.0994
18 Pump10 2014-07-05 19:55:00 20 20 2.112
19 Pump11 2014-07-05 20:15:00 20 20 2.1054
20 Pump12 2014-07-05 19:45:00 20 20 2.099
21 Pump13 2014-07-05 18:45:00 20 20 2.0994
22 Pump14 2014-07-05 16:45:00 20 20 10
23 Pump15 2014-07-05 16:45:00 20 20 2.1234
24 Pump16 2014-07-05 19:45:00 20 20 10
25 Pump17 2014-07-05 18:25:00 20 20 52.5678
26 Pump18 2014-07-05 18:50:00 20 20 42.0116
27 Pump19 2014-07-05 14:20:00 20 20 10

最佳答案

试试这个 sql:

select * from pump_station_data
where id in (
select max(id) from pump_station_data group by Station_id
)
order by Station_id;

对于你的第二个请求,试试这个:
我假设您的主表为“station”,该表中站 id 的列名称为“Station_id”,

select psd.*, st.Station_id from pump_station_data as psd
right join station as st
on psd.Station_id = st.Station_id
where psd.id in (
select max(id) from pump_station_data group by Station_id
)
order by st.Station_id;

关于mysql - 为每个 id 选择最近的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24583676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com