如何编写一个查询,该查询返回一列中每个不同值的行并从另一列返回任意值?
我想找到一个希望简单的解决方案来解决以下问题。如何编写一个查询,该查询返回一列中每个不同值的行并从另一列返回任意值?
我有这样
Name - GUID
NameA {AH42-AJG5-AFHA}
NameA {AJD4-AFJ4-HVFA}
NameB {BGA4-AJGA-GHAA}
NameB {JGA8-GGK1-KLP9}
NameA {KGA4-JAD4-GJA9}
我想要的结果的一个例子的表是
NameA {AH42-AJG5-AFHA}
NameB {BGA4-AJGA-GHAA}
正是我想要1项针对特定的名字,我需要将其与相关的GUID这个名字在第二列。 (返回的GUID是任意的)
感谢您的建议。
假设返回的GUID是不相关的;只要它有一个关联到其中一个名字。
Select [name], min([GUID]) as mGuid
FROM tableLikeThis
Group by [Name]
它实际上是不相关的,我会尝试你的代码。 – user974631 2011-12-25 22:25:52
它的工作原理,但查询输出有点奇怪= “
@ user974631 - 您需要为“min(GUID)AS GUID”列提供别名。 – 2011-12-25 22:34:02
只是提出了一个替代方法(xQbert已经回答了问题)。你可以做一些事情:
SELECT DISTINCT ON (Guid) Name, Guid
FROM Table
什么RDBMS?你如何定义要返回哪个GUID?它是任意的吗?还有什么是'GUID'的数据类型,因为它们看起来不像实际的GUID? – 2011-12-25 22:19:52
鉴于您的示例,这意味着您希望按照字典顺序排列最低的GUID? – fge 2011-12-25 22:20:17
你想要一个给定名称的GUID? – 2011-12-25 22:20:30