group by name 无法用(oracle 使用group by 没效果,请问是什么原因)

本文目录
- oracle 使用group by 没效果,请问是什么原因
- 该列没有包含在聚合函数或GROUP BY子句
- group by 不起作用
- select * from table group by name
- 为什么在SQL语句的GROUP BY里面不可以使用别名
- mysql中group by之后再用order by无效怎么解决
oracle 使用group by 没效果,请问是什么原因
你检查一下,group by 后面的字段,和select 里的直接显示字段必须是一致的。
group by 只是分组不进行排序的 要排序 select * from(select * from table group by 字段)order by 字段
该列没有包含在聚合函数或GROUP BY子句
group by 字句也和where条件语句结合在一起使用。当结合在一起时,where在前,group by 在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组。先看看select xx from xx where xx 查出来和有没有这AccountNo,CustomerName两列.再看select xx from xx where xx group by xx这段.
整条SQL看起来没问题
group by 不起作用
不是你的group by 没有生效,是因为你用的union all 联合,所以你两段sql查出来的数据都查出来的了,所以有两条一样的数据,你试试用union
select * from table group by name
一、这种写法的话,除非
table表里只有name一个字段,否则这种写法会报错。
二、用select
from
table
group
by
name
这种写法可以返回不同值,当然也可以用
select
distinct
from
table
语句返回不同值
为什么在SQL语句的GROUP BY里面不可以使用别名
如下的SQL语句:
SELECT
SUM(num),CASE
type
WHEN
1
THEN
’类别1’
ELSE
’类别2’
END
AS
utype
FROM
USER
GROUP
BY
utype;
执行时会报invalid
identifi的错误,这是因为在SQL执行的时候,WHERE和GROUP语句在字段分类之前就已经执行了,在此期间,别名还没有生效,因此找不到指定别名的字段,报错。
解决办法,将语句改为:
SELECT
SUM(num),BIEMING.utype
FROM
USER,(SELECT
ID,CASE
type
WHEN
1
THEN
’类别1’
ELSE
’类别2’
END
AS
utype
FROM
USER)
BIEMING
EHERE
BIEMING.ID=USER.ID
GROUP
BY
BIEMING.utype;
就是使用一个子查询将别名字段单独拿出来,然后再汇总。
mysql中group by之后再用order by无效怎么解决
(
select avg_p from hs300_sql
WHERE created_at=(SELECT MAX(created_at) FROM hs300_sql)
AND period=’06s’
ORDER BY quanzhong DESC
)k
limit 149;

更多文章:
blast premier春季赛(csgo战队vitality有谁)
2026年9月7日 21:50
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00




