【问题标题】:Get specific entry in case of duplicate entry在重复条目的情况下获取特定条目
【发布时间】:2014-07-02 05:57:42
【问题描述】:

情况: 我有一个场景,我得到的数据除了一个字段外,所有字段都相同。我编写了一个存储过程来获取数据,使用来自不同表的许多连接。就我而言,我需要这两种情况中的任何一种,具体取决于情况。 例如:

实际案例

  |UserId | First name | Last name | IsRequired | IsDeleted |
     1        harry          tom        true         false
     1        harry          tom        false        false
     3         ram            sham       true         false

场景:

如果有两条 IsRequired 分别为 true 和 false 的记录,那么我需要一个 IsRequired 为 true 的案例。

问题:

现在的问题是我需要过滤掉 select 语句中的记录。

所以任何人都知道如何在 select 语句中执行此操作。

预期情况:

| UserId | First name | Last name | IsRequired | IsDeleted |
    1        harry          tom        true         false
    2        ram            sham       true         false

【问题讨论】:

  • 在选择查询中尝试 Distinct
  • 您需要 MySQL、SQL Server 或两者的解决方案吗?
  • select * from table where IsRequired='true' ?
  • 我不能使用 select * from table where IsRequired='true' 因为它会过滤 Isrequired true 的其他记录。

标签: mysql sql sql-server


【解决方案1】:

更新的解决方案:

SELECT UserId, First name, Last name, IsRequired, IsDeleted FROM table WHERE UserId IN (SELECT UserId FROM users GROUP BY UserId HAVING count(distinct(IsRequired)) > 1) and IsRequired = 'true'
UNION
SELECT UserId, First name, Last name, IsRequired, IsDeleted FROM table WHERE UserId IN (SELECT UserId FROM users GROUP BY UserId HAVING count(IsRequired) = 1)

请看http://sqlfiddle.com/#!3/d178f/1/0

复制了完全相同的数据库结构。

【讨论】:

  • 获取错误选择列表,因为它不包含在聚合函数或 GROUP BY 子句中。
  • 哦。你在使用 SQL Server 吗?我认为您需要 MySQL 的解决方案。
  • 我已经更新了答案。请现在检查并告诉我它是否有效。我现在没有安装 SQL Server 版本,因此无法确定它是否可以开箱即用。
  • 它不工作计数>0返回零记录。
  • 它的工作。我在 sql fiddle 中复制了相同的数据库结构。看到这个:sqlfiddle.com/#!6/d178f/12
【解决方案2】:

试试这个:这就是我的想法。

第 1 步:首先将 IsRequired 的数据类型值更改为 BOOLEAN。所以你所拥有的,在 IsRequired 列中包含像 01 这样的值。

第 2 步:然后使用 MAX()。 查询是

SELECT userId,firstname,lastname,MAX(IsRequired),IsDeleted FROM `table_name` GROUP BY userId

【讨论】:

    猜你喜欢
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 2016-02-08
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 2015-01-01
    相关资源
    最近更新 更多