从具有不同值的行中选择所有值

Posted

技术标签:

【中文标题】从具有不同值的行中选择所有值【英文标题】:SELECT all Values from a row with distinct values from a column 【发布时间】:2017-12-02 23:55:18 【问题描述】:

标识 | order_id |跟踪 |状态 |更新时间


表名称:ndc


1 100204835 124124304 0 2017-06-29 00:00:00

2 100204874 124104482 0 2017-06-29 00:00:00

3 100204835 124124304 0 2017-06-29 00:00:00


我需要从 ndc 中选择所有值 (id,order_id,tracking_no),其中 order_id 应该是 唯一的 因为可能存在重复值。

结果应该输出行中的所有值,因为我需要进一步使用它们。

例如。上表中order_id 100204835是重复的。

【问题讨论】:

在 SELECT 之后尝试DISTINCT。示例:SELECT *, DISTINCT order_id FROM table 但这取决于您是否需要单行数据,而不管第二行的第二个数据的重要性 【参考方案1】:

试试这个:Select * from ndc group by order_id;

【讨论】:

【参考方案2】:

您需要将 DISTINCT 与字段名称一起使用并指定其他字段。

SQL:SELECT DISTINCT order_id, id,tracking,status,update_time FROM table

更多大陆答案请关注- mysql - SELECT all columns WHERE one column is DISTINCT

【讨论】:

【参考方案3】:

使用这个

Select * from table group by order_id;

【讨论】:

这行不通!如果它们是两个相同的 order_id,它会列出 2 行【参考方案4】:

SELECT DISTINCT order_id,id,tracking_no FROM ndc;

你也可以在多列上使用它来区分

SELECT DISTINCT order_id  FROM ndc
UNION 
SELECT DISTINCT id  FROM ndc
UNION
SELECT DISTINCT tracking_no FROM ndc

【讨论】:

【参考方案5】:

查询:

  SELECT id,order_id,tracking_no,status,update_time, DISTINCT order_id FROM ndc;

你可以使用简单的group by order_id;

语法: select * from table_name group by field_name;

注意:DISTINCTGROUP BY 通常会生成相同的查询计划,因此两种查询结构的性能应该相同。

【讨论】:

不,这甚至列出了重复记录。【参考方案6】:

没有一个答案对我有用,所以这是我正在工作的一个。在 col4 上使用 group bu,同时获取其他列的最大值

select max(col1) as col1,max(col2) as col2,max(col3) as col3
  , col4
  from 
    table1
  group by col4

【讨论】:

以上是关于从具有不同值的行中选择所有值的主要内容,如果未能解决你的问题,请参考以下文章

按列分组并选择具有多个最小值的行中的所有字段

用SQL拆分具有多个值的行

对具有空值和不同值的行进行分组

SQL删除存在值的行和具有该值的后续列

电源查询。合并具有折叠值的行中的重复行

Django为特定外键选择具有重复字段值的行