【问题标题】:Condense SQL list if any value present如果存在任何值,则压缩 SQL 列表
【发布时间】:2017-03-31 05:38:29
【问题描述】:

我有一张这样的桌子:

Email | Value
a     |  T
a     |  F
b     |  T
c     |  F
c     |  F

如果 T 存在,我想将电子邮件的所有值转换为 T,否则保留为 F,然后按唯一电子邮件分组:

Email | Value
a     | T
b     | T
c     | F

【问题讨论】:

  • 您的 DBMS 是什么? MySQL? SQL 服务器?甲骨文? ...
  • 一封电子邮件是否可以有两个不同的值且没有“T”?例如。电子邮件 d / 值 X、电子邮件 d / 值 Y。在这种情况下,您希望显示哪些值?
  • 只有两个不同的值,如果存在,总是显示 T 超过 F。

标签: sql teradata


【解决方案1】:

使用这些值,您可以使用max()group by

select Email, max(value) as Value
from t
group by Email

【讨论】:

  • 这些是示例值。实际值是比这更长的文本。有没有一种简单的方法可以对这些进行分组,或者我应该将它们转换为可以“最大化”的值吗?
  • @NBC 您使用的是哪个数据库?如果它支持row_number(),那么您可以在每组的前 1 个中使用变体以及您的自定义排序。
  • @NBC 。 . .只能回答您提出的问题。如果您还有其他问题,您应该将其作为另一个问题提出,而不是在评论中。
  • 感谢戈登的建议! @SqlZim,我正在使用 Teradata,它确实支持该功能
  • @NBC 我对 teradata 不熟悉,但如果您提出一个新问题并提供更具体和相关的示例并将其标记为 teradata,我敢打赌 Gordon 会回答它^.^
猜你喜欢
  • 2022-09-23
  • 1970-01-01
  • 2014-01-20
  • 2020-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
相关资源
最近更新 更多