MySQL - 为列组合选择过去十个记录

时间:2018-06-12 13:11:27

标签: mysql mysql-5.7

使用MySQL 5.7。我有一个名为' data_points'包含时间序列数据。有以下列:

  • data_point_id
  • ASSET_NAME
  • data_point_time
  • data_point_value
  • TAG_NAME

它看起来像这样,但持续了几千行:

data_point_id  asset_name  data_point_time   data_point_value  tag_name 
1               asset1      6/12/2018 1:30   40                tag1
2               asset2      6/11/2018 22:18  60                tag2
3               asset3      6/11/2018 19:06  75                tag3
4               asset2      6/11/2018 15:54  10                tag1
5               asset5      6/11/2018 12:42  300               tag2

我希望能够为asset_name和tag_name的每个组合选择最后10个时间顺序记录。我已经确定以下查询为我提供了我想要的单数asset_name和tag_name组合的输出,但我正在寻找获取所有asset_name和tag_name组合的方法。

select * from data_points where tag_name = 'tag1' and asset_name = 'asset1' order by data_point_time desc limit 10;

从那里我需要执行另一个选择,因为工会似乎无法将它们连接在一起。我怀疑这与limit 10有关。

我尝试获取asset_name和tag_name的所有不同组合,如下所示:

select * from data_points where tag_name in (select distinct concat(asset_name, tag_name) from data_points) order by data_point_time desc limit 10;

由于几个原因,这不起作用,但对我来说最明显的是limit 10适用于整个选择,因此只返回10条记录。

0 个答案:

没有答案
相关问题