sql - Postgres查询具有不同列值的行的结果
问题描述
我在同一个表中有几行数据,这些数据行由一个名为 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 的数据被消除。
解决方案
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
推荐阅读
- database - 使用 cassandara 查询和删除聊天收件箱系统
- php - 如何在codeigniter中获取和返回记录总数
- node.js - 无法从路由调用控制器方法 - Node.js 和 Express.js
- javascript - 如何从json对象中删除双引号
- user-interface - 如何在 JavaFX 中找到段落(标签)的结束点?
- bugzilla - 如何使用 Bugzilla API 将用户添加到组?
- powershell - 如何在 PowerShell 中向自定义对象动态添加新属性
- javascript - JavaScript 打字机退格效果
- c# - 考虑将值存储在临时变量 (UI.graphic.color)
- jquery - 如何创建左/右箭头按钮作为轮播上的光标?