慢慢成长的我
2016-06-07 08:41
采纳率: 0%
浏览 1.2k

orc 数据查询求详细解释一下下面的有count(1) rn那部分的意思

select t.id,t.org_name, t.dept_name, t.emp_no, t.name, t.sex, nvl(sum(t.consult), 0) consult, nvl(sum(t.reply), 0) reply from
(
select d.id, d.org_name, d.dept_name, d.emp_no, d.name, (case when d.sex = '1' then '男' else '女' end) sex,
c1.rn consult, c2.rn reply from jkmh_webcms.TB_DOCTOR_USERS d
left join ( select doctorid , isproblem,count(1) rn from jkmh_webcms.tcm_consult group by doctorid, isproblem) c1
on d.id = c1.doctorid and c1.isproblem ='0'
left join ( select doctorid, isproblem, count(1) rn from jkmh_webcms.tcm_consult group by doctorid, isproblem) c2
on d.id = c2.doctorid and c2.isproblem = '2'
)t group by t.id, t.org_name, t.dept_name, t.emp_no, t.name, t.sex

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • _1_1_7_ 2016-06-07 09:11

    count函数表示统计列数,

    count(1)中1就代表你这个查询的表里的第一个字段
    这里用1,也是为了方便,当然如果数据量较大的话,也可以提高速度,因为写count(*)的话会所有列扫描,这里用1的话或者用字段名的话,只扫描你写的那个列

    rn 代表count统计结果的列别名

    点赞 打赏 评论
  • lzj0327 2016-06-07 09:15
     意思是按照后面的goup by 得出来的数据条数,假如按照group by doctorid, isproblem得出来的结果 doctorid, isproblem
     分别相同的有两条,则count(1)这一列的值为2
    
    点赞 打赏 评论
  • yicp123 2016-06-07 09:20

    count(1) rn 表示将表jkmh_webcms.tcm_consult中的值按照doctorid, isproblem进行分组,分组后各组的统计值count(1),并将该统计值重命名为rn

    MySQL如何优化GROUP BY http://www.data.5helpyou.com/article237.html

    点赞 打赏 评论

相关推荐 更多相似问题