【问题标题】:Postgres Query Result of Rows with Different Column ValuePostgres查询具有不同列值的行的结果
【发布时间】:2023-03-09 20:02:01
【问题描述】:

我在同一个表中有几行数据,这些数据行由一个名为 kitdata 的列区分,该列是一个人名。所有其他列都有各种数据。但是,如果名为“resultid”(一个数字)的列在每个人的 kitdata 名称中具有相同的值,我需要从输出结果中消除这些行。因此,如果 Kevin & Terri 在其对应行中具有相同的 resultid 编号,则数据不会显示在结果中。名为 kevin 的套件数据是主要套件。我需要从结果中消除“terri”中的重复数据。

许多变化。包括 !=1

SELECT
  fulln, scm, kitname, sum (resultid)
FROM ftdnamc WHERE kitname !='terri'
GROUP BY
  fulln, scm, kitname
HAVING
  sum (resultid) != 0

预期结果将是与 kevin 和 terri kitdata 相比具有相同 resultid 的数据。

【问题讨论】:

    标签: sql postgresql sum distinct


    【解决方案1】:

    NOT EXISTS 将在resultid 列中存在具有相同值的另一行时消除所有行:

    SELECT
      fulln, scm, kitname, resultid
    FROM ftdnamc f
    WHERE NOT EXISTS (
        SELECT 1 FROM ftdnamc WHERE kitname <> f.kitname AND resultid = f.resultid
    )
    

    如果需要SUM列resultid:

    SELECT
      fulln, scm, kitname, SUM(resultid)
    FROM ftdnamc f
    WHERE NOT EXISTS (
        SELECT 1 FROM ftdnamc WHERE kitname <> f.kitname AND resultid = f.resultid
    )
    GROUP BY fulln, scm, kitname
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-15
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 2020-09-09
      • 2020-11-19
      • 2019-07-31
      • 1970-01-01
      相关资源
      最近更新 更多