I believe many students encounter the problem of invalid prompt identifier when using group by. Don’t worry, let’s summarize the common solutions to this problem:
Example: take the information of the youngest employee in each department
my SQL statement is as follows:
select name,min(age),(select deptname from dept d where d.deptid=uif.deptid)deptname from userinfo uif group by name,deptname
When you click execute, the system prompts:
ORA-00904:"deptname":Identifier is invalid
Error reason: the field after group by cannot be an alias (if you want to use an alias, you need to nest it at one level)
Solution 1:
--goup by The department name (alias: deptname ) is directly used in the deptid field of the employee information table
select name,min(age),(select deptname from dept d where d.deptid=uif.deptid)deptname from userinfo uif group by uif.name,uif.deptid
Solution 2:
--Grouping after one level of nesting
select us.name,min(us.age),us.deptname from (select name,age,(select deptname from dept d where d.deptid=uif.deptid)deptname from userinfo uif)us
group by us.name,us.deptname
How about this time?If you have any questions, please leave a message to study together~