Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL group by只返回第一行_Sql_Group By_Having Clause - Fatal编程技术网

SQL group by只返回第一行

SQL group by只返回第一行,sql,group-by,having-clause,Sql,Group By,Having Clause,我有一个表,其中包含两列“id”和“layout plan” 我需要查看所有具有相同平面布置图的行 我使用这个查询 select * from project_layout group by layout_plan having count(layout_plan) > 1 但是这个查询只返回第一行 我想查看具有相同布局平面图的所有组。如果使用未分组但没有聚合的列,则MySQL以外的数据库将显示错误。但是MySQL将从组的行中返回一个不确定的值 要检索包含多行的layout\u p

我有一个表,其中包含两列“id”和“layout plan”

我需要查看所有具有相同平面布置图的行

我使用这个查询

select * 
from project_layout 
group by layout_plan 
having count(layout_plan) > 1
但是这个查询只返回第一行


我想查看具有相同布局平面图的所有组。

如果使用未分组但没有聚合的列,则MySQL以外的数据库将显示错误。但是MySQL将从组的行中返回一个不确定的值

要检索包含多行的
layout\u plan
组中的所有行,可以使用:

select  *
from    project_layout
where   layout_plan in
        (
        select  layout_plan 
        from    project_layout 
        group by 
               layout_plan 
        having 
               count(*) > 1
        )

如果使用未分组但没有聚合的列,则MySQL以外的数据库将出现错误。但是MySQL将从组的行中返回一个不确定的值

要检索包含多行的
layout\u plan
组中的所有行,可以使用:

select  *
from    project_layout
where   layout_plan in
        (
        select  layout_plan 
        from    project_layout 
        group by 
               layout_plan 
        having 
               count(*) > 1
        )
为了提高性能,请在
布局平面图

为了提高性能,请在“布局平面图”列上添加一个索引

select * from project_layout 
where layout_plan in (select layout_plan   
            from project_layout    
            group by layout_plan   
            having count(layout_plan) > 1)
试试这个

select * from project_layout 
where layout_plan in (select layout_plan   
            from project_layout    
            group by layout_plan   
            having count(layout_plan) > 1)

可能您在每个组计划中都有一条记录,因此您的子句
count(layout\u plan)>1会过滤其他记录,并且您只会在记录上看到计数(layout\u plan)超过1的记录,可能每个组计划中都有一条记录,因此您的子句
count(layout\u plan)>1
过滤其他记录,您只能在记录上看到
(id)
的计数(布局平面图)超过1组的记录,这些记录的
计数(*)往往都等于1
@Andomar Youzah!我是一个多么愚蠢的人:/现在我的答案被编辑了。
(id)
的组往往都有
count(*)=1
@Andomar Youzah!我现在是一个多么愚蠢的人啊。MySQL被明确地记录为从不确定的行而不是第一行()返回值。我想你知道这一点,但这个答案正在其他地方引用。@GordonLinoff:是的,“它遇到的第一个值”是不确定的。我会更新答案让它更清楚。现在我明白你最初的写作方式了。微妙的正确,但不幸的是容易被误解。MySQL被明确地记录为从不确定的行而不是第一行()返回值。我想你知道这一点,但这个答案正在其他地方引用。@GordonLinoff:是的,“它遇到的第一个值”是不确定的。我会更新答案让它更清楚。现在我明白你最初的写作方式了。微妙的正确,但不幸的是容易被误解。