从具有不同值的行中选择所有值
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;
注意:
DISTINCT
和GROUP BY
通常会生成相同的查询计划,因此两种查询结构的性能应该相同。
【讨论】:
不,这甚至列出了重复记录。【参考方案6】:没有一个答案对我有用,所以这是我正在工作的一个。在 col4 上使用 group bu,同时获取其他列的最大值
select max(col1) as col1,max(col2) as col2,max(col3) as col3
, col4
from
table1
group by col4
【讨论】:
以上是关于从具有不同值的行中选择所有值的主要内容,如果未能解决你的问题,请参考以下文章