GROUP BY 和 DISTINCT 不起作用
GROUP BY and DISTINCT not working
和Group by
SELECT Column1, Column2, Column3
FROM Table
GROUP BY Column1, Column2, Column3
ORDER BY Column1
和 Distinct
SELECT DISTINCT Column1, Column2, Column3
FROM Table
ORDER BY Column1
这些查询没有出现错误,但它们没有对我的结果进行分组。我尝试按 Column1 分组。这些查询可能有什么问题?
提前谢谢你。
编辑:
通过这些查询,我得到的结果为
值 1 值 2
值 1 值 3
值 3 值 4
值 4 值 5
值 4 值 6
但我想得到结果
值 1 值 2
值 3 值 4
值 4 值 5
编辑:
对不起,我错了; Value5 和 Value6 是唯一值,因此不能省略它们...
显示结果的示例测试:
SQL> create table junk (
2 col1 number,
3 col2 number,
4 col3 number
5 )
6 /
Table created.
SQL>
SQL> insert into junk values ( 100, 200, 300 );
1 row created.
SQL> insert into junk values ( 100, 200, 300 );
1 row created.
SQL> insert into junk values ( 100, 200, 400 );
1 row created.
SQL> insert into junk values ( 400, 200, 300 );
1 row created.
SQL>
SQL> commit;
Commit complete.
SQL>
SQL> select col1, col2, col3
2 from junk
3 group by col1, col2, col3
4 order by col1
5 /
COL1 COL2 COL3
---------- ---------- ----------
100 200 300
100 200 400
400 200 300
SQL> select distinct col1, col2, col3 from junk order by col1;
COL1 COL2 COL3
---------- ---------- ----------
100 200 300
100 200 400
400 200 300
SQL>
如果这不起作用,请使用不同的数据显示类似的内容...完全可重现并可重新运行。 (我使用的是 Oracle,但是,以上内容应该适用于任何数据库)
请注意如何将前 2 行(100、200、300)"combined" 查询为 "single" 行。这就是正在发生的事情。如果您希望发生其他事情,请添加更多详细信息以进行解释 ;)
我通过省略具有唯一值的列解决了我的问题。
SELECT DISTINCT Column1 FROM Table ORDER BY Column1
和Group by
SELECT Column1, Column2, Column3
FROM Table
GROUP BY Column1, Column2, Column3
ORDER BY Column1
和 Distinct
SELECT DISTINCT Column1, Column2, Column3
FROM Table
ORDER BY Column1
这些查询没有出现错误,但它们没有对我的结果进行分组。我尝试按 Column1 分组。这些查询可能有什么问题?
提前谢谢你。
编辑:
通过这些查询,我得到的结果为
值 1 值 2
值 1 值 3
值 3 值 4
值 4 值 5
值 4 值 6
但我想得到结果
值 1 值 2
值 3 值 4
值 4 值 5
编辑:
对不起,我错了; Value5 和 Value6 是唯一值,因此不能省略它们...
显示结果的示例测试:
SQL> create table junk (
2 col1 number,
3 col2 number,
4 col3 number
5 )
6 /
Table created.
SQL>
SQL> insert into junk values ( 100, 200, 300 );
1 row created.
SQL> insert into junk values ( 100, 200, 300 );
1 row created.
SQL> insert into junk values ( 100, 200, 400 );
1 row created.
SQL> insert into junk values ( 400, 200, 300 );
1 row created.
SQL>
SQL> commit;
Commit complete.
SQL>
SQL> select col1, col2, col3
2 from junk
3 group by col1, col2, col3
4 order by col1
5 /
COL1 COL2 COL3
---------- ---------- ----------
100 200 300
100 200 400
400 200 300
SQL> select distinct col1, col2, col3 from junk order by col1;
COL1 COL2 COL3
---------- ---------- ----------
100 200 300
100 200 400
400 200 300
SQL>
如果这不起作用,请使用不同的数据显示类似的内容...完全可重现并可重新运行。 (我使用的是 Oracle,但是,以上内容应该适用于任何数据库)
请注意如何将前 2 行(100、200、300)"combined" 查询为 "single" 行。这就是正在发生的事情。如果您希望发生其他事情,请添加更多详细信息以进行解释 ;)
我通过省略具有唯一值的列解决了我的问题。
SELECT DISTINCT Column1 FROM Table ORDER BY Column1