使用任何最新的 N 个标签获取所有行

小羊驼

我需要获取N个最新标签的所有记录,即按时间戳排序。

我设法构建了以下查询来检索最新的 20 个标签。但是,当我尝试加入结果时,“限制”将影响总行数,而不是唯一标签的数量。

SELECT id, tag, timestamp
FROM items AS T1 
WHERE NOT EXISTS (
        SELECT *
        FROM items AS T2
        WHERE T2.tag = T1.id AND T2.timestamp > T1.timestamp
    )
ORDER BY timestamp DESC 
LIMIT 20;

因此,鉴于下表...

 id | tag        | timestamp
----+------------+------------
  1 | Green      | 2019-04-30
  2 | Red        | 2019-04-29
  3 | Blue       | 2019-04-28
  4 | Green      | 2019-04-27
  5 | White      | 2019-04-26
  6 | Red        | 2019-04-25
  7 | Black      | 2019-04-24
  8 | Blue       | 2019-04-23
  9 | Red        | 2019-04-22
 10 | Black      | 2019-04-21

... 对最近 3 个最新标签的查询应输出以下内容或类似内容:

 id | tag        | timestamp
----+------------+------------
  1 | Green      | 2019-04-30
  4 | Green      | 2019-04-27
  2 | Red        | 2019-04-29
  6 | Red        | 2019-04-25
  9 | Red        | 2019-04-22
  3 | Blue       | 2019-04-28
  8 | Blue       | 2019-04-23
戈登·利诺夫

如果你想要最近的 20 个,有重复的:

SELECT id, tag, timestamp
FROM items i
WHERE i.tag IN (SELECT i2.tag
                FROM i2
                ORDER BY timestamp DESC
                FETCH FIRST 20 ROWS ONLY
               );
ORDER BY timestamp DESC ;

如果你想要最近的 20 个没有重复的:

SELECT id, tag, timestamp
FROM items i
WHERE i.tag IN (SELECT i2.tag
                FROM i2
                GROUP BY i2.tag
                ORDER BY MAX(timestamp) DESC
                FETCH FIRST 20 ROWS ONLY
               );
ORDER BY timestamp DESC 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用HBase获取最近N天的所有行

来自分类Dev

从 n 个列表中获取任何非零长度的所有可能组合

来自分类Dev

每组打印前N行->删除所有docker映像,每个映像名称的最新N个除外

来自分类Dev

使用PHP获取所有可能的n个元素对,且不重复

来自分类Dev

获取N个物品的所有组合

来自分类Dev

当 N 个事件中的任何一个发生时执行,但使用所有其他事件的最后结果

来自分类Dev

使用CMIS获取所有Alfresco标签

来自分类Dev

如何使用gcloud命令或任何bash脚本从所有版本中过滤最新的App Engine版本

来自分类Dev

使用N1QL在Couchbase中获取最新修订

来自分类Dev

使用where条件从表中获取最新的N条记录

来自分类Dev

在符合条件的所有行之前获取第n个索引

来自分类Dev

如何获取n * m个矩阵行的所有可能总和的列表

来自分类Dev

Java中获取最新(降序最后修改)n个文件的最佳优化方法是什么-无需加载大目录中的所有文件

来自分类Dev

使用Qt获取csv文件中两个特定行之间的所有行

来自分类Dev

从任何行SQLite获取下N行

来自分类Dev

删除所有具有共同前缀的文件,但最新修改的N个文件除外

来自分类Dev

使用SQLite从两个表中获取所有行

来自分类Dev

如何使用单个参数从SQL Server获取2个不同值的所有行?

来自分类Dev

如何删除除N个最新文件以外的所有文件?

来自分类Dev

如何删除除N个最新文件以外的所有文件?

来自分类Dev

使用 like 获取所有行

来自分类Dev

如何使用Selenium Python中的一个类从任何网站获取所有数据

来自分类Dev

获取多维数组的N个元素的所有组合

来自分类Dev

获取所有/某些元素的列表的前 n 个元素

来自分类Dev

R:获取所有列表子集的最佳 N 个值

来自分类Dev

使用SQL获取特定标签的所有帖子

来自分类Dev

渗透-使用相同的标签获取所有节点/方法/关系

来自分类Dev

使用Beautiful Soup获取所有HTML标签

来自分类Dev

Umbraco-获取节点/组中使用的所有标签

Related 相关文章

  1. 1

    使用HBase获取最近N天的所有行

  2. 2

    从 n 个列表中获取任何非零长度的所有可能组合

  3. 3

    每组打印前N行->删除所有docker映像,每个映像名称的最新N个除外

  4. 4

    使用PHP获取所有可能的n个元素对,且不重复

  5. 5

    获取N个物品的所有组合

  6. 6

    当 N 个事件中的任何一个发生时执行,但使用所有其他事件的最后结果

  7. 7

    使用CMIS获取所有Alfresco标签

  8. 8

    如何使用gcloud命令或任何bash脚本从所有版本中过滤最新的App Engine版本

  9. 9

    使用N1QL在Couchbase中获取最新修订

  10. 10

    使用where条件从表中获取最新的N条记录

  11. 11

    在符合条件的所有行之前获取第n个索引

  12. 12

    如何获取n * m个矩阵行的所有可能总和的列表

  13. 13

    Java中获取最新(降序最后修改)n个文件的最佳优化方法是什么-无需加载大目录中的所有文件

  14. 14

    使用Qt获取csv文件中两个特定行之间的所有行

  15. 15

    从任何行SQLite获取下N行

  16. 16

    删除所有具有共同前缀的文件,但最新修改的N个文件除外

  17. 17

    使用SQLite从两个表中获取所有行

  18. 18

    如何使用单个参数从SQL Server获取2个不同值的所有行?

  19. 19

    如何删除除N个最新文件以外的所有文件?

  20. 20

    如何删除除N个最新文件以外的所有文件?

  21. 21

    使用 like 获取所有行

  22. 22

    如何使用Selenium Python中的一个类从任何网站获取所有数据

  23. 23

    获取多维数组的N个元素的所有组合

  24. 24

    获取所有/某些元素的列表的前 n 个元素

  25. 25

    R:获取所有列表子集的最佳 N 个值

  26. 26

    使用SQL获取特定标签的所有帖子

  27. 27

    渗透-使用相同的标签获取所有节点/方法/关系

  28. 28

    使用Beautiful Soup获取所有HTML标签

  29. 29

    Umbraco-获取节点/组中使用的所有标签

热门标签

归档