【问题标题】:Get Row Number according to a specific condition by sqlite通过 sqlite 根据特定条件获取行号
【发布时间】:2020-12-18 21:28:06
【问题描述】:

我有 3 张桌子:

所以我需要一个 SQLite 查询来显示 s_id=7 的行号(这里必须是 3)

我在互联网上搜索太多以找到提示但我没有找到!如果有人可以帮助我,那将是完美的。

【问题讨论】:

  • 请阅读您使用的标签的标签信息,并按照此处所述提供 MRE。 stackoverflow.com/tags/sqlite/info 还要描述你尝试了什么以及它是如何失败的。描述你想要什么在这里不被视为问题。
  • 明天行号可能不是3。如果您需要 7 以外的 id,则该字段需要包含在 Section 表中。
  • 生成3 for s_id`7的逻辑是什么?请解释您要做什么。
  • 我想知道值 s_id= 7 的行号,所以如果你查看 Section Table 你会看到 s_id=7 是 3ed 行!明天可以是 2 还是 1 都没有关系,我想得到它的值的实际行号

标签: sql sqlite subquery window-functions


【解决方案1】:

你可以像这样使用窗口函数:

select *
from (
    select s_id, row_number() over(order by s_id) as rn
    from section
) s
where s_id = 7

或者,如果您的 SQLite 版本不支持窗口函数,您可以使用子查询:

select s_id,
    (select count(*) from section s1 where s1.s_id <= s.id) as rn
from section s
where s_id = 7

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多