【问题标题】:join 2 sql avg table in one query在一个查询中加入 2 个 sql avg 表
【发布时间】:2023-01-13 04:47:55
【问题描述】:

所以我有这个 SQL 代码,它显示了第二个表中也存在的所有蛋白质的平均长度,称为 mrna_pieces。

select AVG(protein_length)
FROM protein
WHERE exists
(select protein_id from mrna_pieces where mrna_brokstukken.protein_id = protein.protein_id)

问题是我也想显示完全相同但对于第二个表中不存在的所有蛋白质。

select AVG(protein_length)
FROM protein
WHERE exists
(select protein_id from mrna_pieces where mrna_brokstukken.protein_id != protein.protein_id)

但我希望这两个部分像这样放在一张桌子上 table example

我试过这个

select AVG(eiwit_lengte) AS avglengthwith, AVG(eiwit_lengte) AS avglengthwithout
FROM eiwit
WHERE exists
(select eiwit_id from mrna_brokstukken where mrna_brokstukken.eiwit_id != eiwit.eiwit_id)
WHERE exists
(select eiwit_id from mrna_brokstukken where mrna_brokstukken.eiwit_id = eiwit.eiwit_id)

但这给了我以下错误: 错误:pq:“WHERE”处或附近的语法错误

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    只需同时选择两个:

    select (
      select AVG(protein_length)
      FROM protein
      WHERE exists
      (select protein_id from mrna_pieces where mrna_brokstukken.protein_id = protein.protein_id)
    ) as avgwith,
    (
      select AVG(protein_length)
      FROM protein
      WHERE exists
      (select protein_id from mrna_pieces where mrna_brokstukken.protein_id != protein.protein_id)
    )
    as avgwithout
    

    【讨论】:

      【解决方案2】:

      因为这两个查询都会返回一个标量值,您可以简单地使用 bot 作为子查询

      SELECT
      
          (select AVG(protein_length)
          FROM protein
          WHERE exists
          (select protein_id from mrna_pieces where mrna_brokstukken.protein_id = protein.protein_id) ) AVG_1,
          (select AVG(protein_length)
          FROM protein
          WHERE exists
          (select protein_id from mrna_pieces where mrna_brokstukken.protein_id != protein.protein_id)) AVG_2
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-02
        • 2018-07-02
        • 2015-12-09
        • 1970-01-01
        • 1970-01-01
        • 2021-08-30
        • 2013-09-27
        相关资源
        最近更新 更多