【问题标题】:How to join two queries to make a subquery如何连接两个查询以进行子查询
【发布时间】:2021-10-22 00:34:42
【问题描述】:

我有一个给我一组值的第一个查询和给我这组值的最大值的第二个查询。 我想合并这两个查询。我在下面尝试过这样的:

第一个查询:

SELECT SUBSTR(column, INSTR(column, ' ')+1,3)  
from table  
WHERE column LIKE '#13 %'

第二次查询:

SELECT MAX(column)

合并:

SELECT MAX(column) 
FROM table WHERE column = (
  SELECT  SUBSTR(column, INSTR(column, ' ')+1,3)  
  from table  
  WHERE column LIKE '#13 %'
)

您能帮我如何合并两个查询吗?

第一个查询结果:

30
1
2
3
12
13
14
15
16
17
18
19

我想在我的第二个查询中获得这组值的最大值:30

【问题讨论】:

  • 合并是什么意思?发布样本数据和预期结果以澄清。
  • 只标记您使用的数据库。
  • 我使用 python 和 sqlite

标签: python sql sqlite substring sql-max


【解决方案1】:

SUBSTR(column, INSTR(column, ' ') + 1, 3) 的结果是一个字符串,因此您必须将其转换为一个数字,这可以通过添加 0 来完成。
然后使用MAX()聚合函数:

SELECT MAX(SUBSTR(column, INSTR(column, ' ') + 1, 3) + 0)  
FROM tablename  
WHERE column LIKE '#13 %';

由于您在WHERE 子句中有条件column LIKE '#13 %',那么您知道列中的第一个空格位于位置4,因此您可以简化为:

SELECT MAX(SUBSTR(column, 5, 3) + 0)  
FROM tablename  
WHERE column LIKE '#13 %';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 2022-01-15
    相关资源
    最近更新 更多