列含糊不清地定义错误 oracle sql
Column ambiguously defined error oracle sql
我有以下问题 sql code.I 有一个 table 像这样: Student(st_id
,st_fname,st_lname) 和访问次数 (visit_id
,st_id,visit_cost).
我想做的是 select 每个学生的平均 visit_cost 超过 500,然后 st_fname 和 st_lname。我写了以下代码:
select avg (v.visit_cost) as average_cost, s.st_fname, s.st_lname
from student s
inner join visitings v on s.st_id=v.st_id
group by st_id
having avg(v.visit_cost)>=500;
在输出中显示 "column ambiguously defined" 错误。如果可能的话,你能帮我解决这个问题吗?
由于您没有回答评论中的问题,我假设 amount_paid
列来自 visitings
table 作为 student
table看起来像一个维度 table。
column ambiguity
错误是由于 st_id
列存在于两个 table 中。所以 SQL 不知道你指的是哪个 table 的 st_id
。试试这个。
select avg (v.visit_cost) as average_cost, s.st_fname, s.st_lname
from student s
inner join visitings v on s.st_id=v.st_id
group by s.st_id
having avg(v.amount_paid)>=500;
请在此处查看 SQLFiddle 演示
我有以下问题 sql code.I 有一个 table 像这样: Student(st_id
,st_fname,st_lname) 和访问次数 (visit_id
,st_id,visit_cost).
我想做的是 select 每个学生的平均 visit_cost 超过 500,然后 st_fname 和 st_lname。我写了以下代码:
select avg (v.visit_cost) as average_cost, s.st_fname, s.st_lname
from student s
inner join visitings v on s.st_id=v.st_id
group by st_id
having avg(v.visit_cost)>=500;
在输出中显示 "column ambiguously defined" 错误。如果可能的话,你能帮我解决这个问题吗?
由于您没有回答评论中的问题,我假设 amount_paid
列来自 visitings
table 作为 student
table看起来像一个维度 table。
column ambiguity
错误是由于 st_id
列存在于两个 table 中。所以 SQL 不知道你指的是哪个 table 的 st_id
。试试这个。
select avg (v.visit_cost) as average_cost, s.st_fname, s.st_lname
from student s
inner join visitings v on s.st_id=v.st_id
group by s.st_id
having avg(v.amount_paid)>=500;
请在此处查看 SQLFiddle 演示