Mysql 区分和分组之间的混淆
在下面的场景中,我对DISTINCT和GROUP BY感到困惑 我有一个a-z列的表。我需要使用以下条件进行查询Mysql 区分和分组之间的混淆,mysql,sql,Mysql,Sql,在下面的场景中,我对DISTINCT和GROUP BY感到困惑 我有一个a-z列的表。我需要使用以下条件进行查询 select DISTINCT a, b, c, d from table_name 但我需要上面查询中的所有a-z列,在这里我可以区分a、b、c、d 那么我应该执行以下查询吗 select * from table_name GROUP BY a, b, c, d 在这种情况下,我混淆了DISTINCT和GROUP BY 谁能帮我澄清一下吗 谢谢。使用窗口功能: select
select DISTINCT a, b, c, d from table_name
但我需要上面查询中的所有a-z列,在这里我可以区分a、b、c、d
那么我应该执行以下查询吗
select * from table_name GROUP BY a, b, c, d
在这种情况下,我混淆了DISTINCT和GROUP BY
谁能帮我澄清一下吗
谢谢。使用窗口功能:
select t.*
from (select t.*,
row_number() over (partition by a, b, c, d order by a) as seqnum
from t
) t
where seqnum = 1;
聚合不适用于此问题。此查询:
select *
from table_name
group by a, b, c, d;
语法上是不正确的——令人高兴的是,MySQL默认设置不再允许这种语法。问题是,最终在select中会出现未聚合的列,如e、f等。这在SQL中是不允许的。您需要明确地进行聚合查询。您应该在此处添加示例数据。您是否试图从e-z列中为每个唯一的a-d实例获取所有不同的值?我需要获取所有具有不同a-d的列。我无法提供此问题的数据。这种问题高度表明架构设计不佳。