我希望oracle中的表中的列值和相同的列数。
以下是查询:
select username,
count(username)
from ind_emp_leaves
where status != 'Approved'
and (leavefromdate BETWEEN to_date('08-09-2013','dd/MM/yyyy')
AND to_date('11-09-2013','dd/MM/yyyy')) OR
(LEAVETODATE BETWEEN to_date('08-09-2013','dd/MM/yyyy')
AND to_date('11-09-2013','dd/MM/yyyy'))
以上查询显示错误:
SQL错误:ORA-00937:不是单组组功能
没有用户名字段,它显示计数值,但我也想要用户名值和用户名数。
答案 0 :(得分:1)
假设您想要每个用户的计数,这应该给出正确的结果:
select username, count(*) from ind_emp_leaves
where (status != 'Approved')
and ((leavefromdate BETWEEN to_date('08-09-2013','dd/MM/yyyy')
AND to_date('11-09-2013','dd/MM/yyyy'))
OR (LEAVETODATE BETWEEN to_date('08-09-2013','dd/MM/yyyy')
AND to_date('11-09-2013','dd/MM/yyyy')))
group by username
请注意,我在留日部分周围添加了额外的parens - 我假设您希望检查两个时间间隔的“status!='Approved'”部分,而不仅仅是第一个时间间隔。
答案 1 :(得分:0)
您可以使用以下代码获得所需的结果。
select username, count(*) from ind_emp_leaves
where status != 'Approved')
and ((leavefromdate BETWEEN to_date('08-09-2013','dd/MM/yyyy')
AND to_date('11-09-2013','dd/MM/yyyy'))
OR (LEAVETODATE BETWEEN to_date('08-09-2013','dd/MM/yyyy')
AND to_date('11-09-2013','dd/MM/yyyy')))
group by username
答案 2 :(得分:0)
嘿,如果你正在使用聚合函数,比如!
AVG
COLLECT
CORR
CORR_*
COUNT
COVAR_POP
COVAR_SAMP
CUME_DIST
DENSE_RANK
FIRST
GROUP_ID
GROUPING
GROUPING_ID
LAST
你应该按功能分组!。