检索一列而不是另一列的不同 SQL 查询结果

Posted

技术标签:

【中文标题】检索一列而不是另一列的不同 SQL 查询结果【英文标题】:Retrieve distinct SQL query results for one column and not the other column 【发布时间】:2011-12-12 21:25:14 【问题描述】:

我有一个表格,其数据格式如下。我想要的只是一个代码和电话号码。我得到哪个电话号码并不重要,我只需要一个电话号码。

代码电话号码 1000009 (123)752-0108 1000257 (456)718-1229 1000257 (789)750-1057 1000259 (000)000-0001 1000259 (111)453-0522 1000259 (222)460-8947 1000270 (333)528-6468 1000276 (444)384-5571

我需要的结果如下所示: 代码电话号码 1000009 (123)752-0108 1000257 (456)718-1229 1000259 (000)000-0001 1000270 (333)528-6468 1000276 (444)384-5571

任何有关 SQL 查询的帮助将不胜感激。谢谢

【问题讨论】:

【参考方案1】:

如果给定代码的任何电话号码足够,您可以使用GROUP BY 和任何aggregating functions 来完成此操作

此示例使用MAX 聚合函数。

SELECT  Code
        , PhoneNumber = MAX(phoneNumber)
FROM    Table
GROUP BY
        Code

【讨论】:

【参考方案2】:
WITH cteRowNum AS (
    SLEECT Code, phoneNumber,
           ROW_NUMBER() OVER(PARTITION BY Code ORDER BY phoneNumber) AS RowNum
        FROM YourTable
)
SELECT Code, phoneNumber
    FROM cteRowNum
    WHERE RowNum = 1;

【讨论】:

以上是关于检索一列而不是另一列的不同 SQL 查询结果的主要内容,如果未能解决你的问题,请参考以下文章

如何根据另一列的条件查询同一列两次?

SQL中如何统计查询结果中某一列重复值的个数?

Presto 数组包含来自另一列的值(超集 SQL 查询)

基于sql中另一列的一列中的最大数据

SQL如何查询出某一列中不同值出现的次数?

MariaDB/mysql SQL查询问题:我想根据另一列的组值对一列进行部分总和