我需要获取 ExpTime 大于 2017-05-24 的每个 TypV 的记录
示例数据:
PHVal TypV WTemp ExpTime
----------------------------------
3.00 A 22.00 2017-03-29 02:34:00
6.00 A 45.00 2017-06-29 02:34:00
8.22 A 12.00 2017-08-25 01:25:00
3.00 A 22.00 2017-03-29 02:34:00
11.00 B 11.00 2016-06-29 02:34:00
1.22 C 12.00 2017-04-25 11:25:00
17.00 B 1.70 2017-05-30 02:44:00
27.22 C 76.00 2017-07-25 08:21:00
11.00 B 18.30 2017-09-29 14:34:00
27.22 C 32.00 2017-11-12 11:31:00
如果我运行 SQL 查询
SELECT
PHVal, TypV, WTemp, ExpTime
FROM tempsurvey
WHERE
ExpTime > to_date('2017-05-24')
我已经获得了每个 TypV 的多个记录,但我想要输出:
PHVal TypV WTemp ExpTime
----------------------------------
6.00 A 45.00 2017-06-29 02:34:00
17.00 B 1.70 2017-05-30 02:44:00
27.22 C 76.00 2017-07-25 08:21:00
最佳答案
我希望您需要包含 ExpTime > '2017-05-24'
的行,并选择每个 TypV
具有最小日期的行。
查询
select t2.PHVal,
t2.TypV,
t2.WTemp,
t2.ExpTime
from
(
select PHVal,
TypV,
WTemp,
ExpTime,
(
case TypV
when @curA
then @curR := @curR + 1
else @curR := 1 and @curA := TypV end
) + 1 as rn
from (
select * from `your_table_name`
where cast(ExpTime as date) > '2017-05-24'
) t,
(select @curR := 0, @curA := '') r
order by TypV, ExpTime
)t2
where t2.rn = 1
order by TypV;
<强> Find demo here
关于mysql - 如何获取每个值的 1 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44128567/