排除特定类型的记录

开发人员

我正在使用SQL Server 2008 R2。我确实有下表中的记录:

Id  Sys   Dia   Type        UniqueId
1   156   20    first       12345
2   157   20    first       12345
3   150   15    last        12345
4   160   17    Average     12345
5   150   15    additional  12345
6   157   35    last        891011
7   156   25    Average     891011
8   163   35    last        789521
9   145   25    Average     789521
10  156   20    first       963215
11  150   15    last        963215
12  160   17    Average     963215
13  156   20    first       456878
14  157   20    first       456878
15  150   15    last        456878
16  160   17    Average     456878
17  150   15    last        246977
18  160   17    Average     246977
19  150   15    additional  246977

关于此数据,这些记录属于具有共同的UniqueId的组。记录的类型可以是“第一,最后,平均和其他”。现在,仅当它们在组中具有“第一”或“其他”种类的读数时,我才希望从这些记录中选择“平均”类型的记录。否则我想从选择中排除它们。

预期结果是:

Id  Sys   Dia   Type        UniqueId
1   156   20    first       12345
2   157   20    first       12345
3   150   15    last        12345
4   160   17    Average     12345
5   150   15    additional  12345
6   157   35    last        891011
7   163   35    last        789521
8   156   20    first       963215
9   150   15    last        963215
10  160   17    Average     963215
11  156   20    first       456878
12  157   20    first       456878
13  150   15    last        456878
14  160   17    Average     456878
15  150   15    last        246977
16  160   17    Average     246977
17  150   15    additional  246977

简而言之,我不想选择type =“ Average”且只有“ last”类型的记录具有相同UniqueId的记录。有什么办法吗?

内纳德·齐夫科维奇(Nenad Zivkovic)

EXISTS在关联子查询中使用运算符:

SELECT * FROM dbo.Table1 t1
WHERE [Type] != 'Average' 
OR EXISTS (SELECT * FROM Table1 t2 
           WHERE t1.UniqueId = t2.UniqueId 
             AND t1.[Type] = 'Average' 
             AND t2.[Type] IN ('first','additional'))

SQLFiddle演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQL中排除特定记录?

来自分类Dev

简单的表单收集,但排除特定记录

来自分类Dev

简单的表单收集,但排除特定记录

来自分类Dev

获取特定类型的最新记录

来自分类Dev

从全局环境中排除特定的对象类型

来自分类Dev

如何从TypeClass解析中排除特定类型?

来自分类Dev

配置单元外部表排除违反数据类型的记录

来自分类Dev

SQL查询可根据类型和日期排除记录

来自分类Dev

从保存到历史记录中排除特定命令

来自分类Dev

配置单元查询特定联合类型的记录

来自分类Dev

CloudKit:获取具有特定记录类型的所有记录?

来自分类Dev

选择具有特定类型的关联记录的记录

来自分类Dev

如何从JSON序列化中排除特定类型

来自分类Dev

如何在Python中排除输入变量的特定类型?

来自分类Dev

如何遍历文件并排除特定文件类型

来自分类Dev

如何使用 Eloquent 获取最后 9 条记录但排除具有特定 ID 的记录?

来自分类Dev

MySQL的:排除UNION记录

来自分类Dev

如何排除对称记录

来自分类Dev

Nginx-将特定文件或文件夹从日志记录排除到access.log

来自分类Dev

编写SQL查询以排除日期早于带有特定标志的记录

来自分类Dev

需要从python中的大型数据集中排除特定记录

来自分类Dev

如何在Netsuite中指定事务搜索的特定记录类型...

来自分类Dev

Avro特定记录与通用记录类型-哪种是最佳记录,或者我可以在哪种记录之间进行转换?

来自分类常见问题

从类型中排除属性

来自分类Dev

inotifywait排除文件类型

来自分类Dev

检测特定的C ++类型是否具有成员,排除继承的成员

来自分类Dev

自动查询排除没有记录的记录

来自分类Dev

Doxygen:排除未记录的文件

来自分类Dev

左联接排除匹配记录?

Related 相关文章

  1. 1

    如何在SQL中排除特定记录?

  2. 2

    简单的表单收集,但排除特定记录

  3. 3

    简单的表单收集,但排除特定记录

  4. 4

    获取特定类型的最新记录

  5. 5

    从全局环境中排除特定的对象类型

  6. 6

    如何从TypeClass解析中排除特定类型?

  7. 7

    配置单元外部表排除违反数据类型的记录

  8. 8

    SQL查询可根据类型和日期排除记录

  9. 9

    从保存到历史记录中排除特定命令

  10. 10

    配置单元查询特定联合类型的记录

  11. 11

    CloudKit:获取具有特定记录类型的所有记录?

  12. 12

    选择具有特定类型的关联记录的记录

  13. 13

    如何从JSON序列化中排除特定类型

  14. 14

    如何在Python中排除输入变量的特定类型?

  15. 15

    如何遍历文件并排除特定文件类型

  16. 16

    如何使用 Eloquent 获取最后 9 条记录但排除具有特定 ID 的记录?

  17. 17

    MySQL的:排除UNION记录

  18. 18

    如何排除对称记录

  19. 19

    Nginx-将特定文件或文件夹从日志记录排除到access.log

  20. 20

    编写SQL查询以排除日期早于带有特定标志的记录

  21. 21

    需要从python中的大型数据集中排除特定记录

  22. 22

    如何在Netsuite中指定事务搜索的特定记录类型...

  23. 23

    Avro特定记录与通用记录类型-哪种是最佳记录,或者我可以在哪种记录之间进行转换?

  24. 24

    从类型中排除属性

  25. 25

    inotifywait排除文件类型

  26. 26

    检测特定的C ++类型是否具有成员,排除继承的成员

  27. 27

    自动查询排除没有记录的记录

  28. 28

    Doxygen:排除未记录的文件

  29. 29

    左联接排除匹配记录?

热门标签

归档