VimIy微民网,让世界倾听微民的声音! 设为首页 | 加入收藏 | 网站地图
当前位置:主页 > 大杂烩 >

SQL求助,,听说微民网的码农都是特别厉害的。

整理时间:2013-05-28 11:10 来源:www.vimiy.com 作者:编辑 点击:

【楼主】2013-06-06 19:17

» SQL求助,,听说微民网的码农都是特别厉害的。
    select
    a.vv,a.uv,beijing ,shanghai ,guangzhou ,Shenzhen,year1 ,year2 ,year3 ,year4 ,year5 ,year6,male,female
     from (
     SELECT sum(a.play_cnt) vv,count(DISTINCT a.uin)uv,
     count( case when city_id=-1 then 1 else NULL end) beijing,
     count( case when city_id=-12 then 1 else NULL end) shanghai,
     count( case when city_id=198 then 1 else NULL end) guangzhou,
     count( case when city_id=199 then 1 else NULL end) shenzhen,
     count( case when age<=17 then 1 else NULL end) year1,
     count( case when age>=18 and age<=22 then 1 else NULL end) year2,
     count( case when age>=23 and age<=25 then 1 else NULL end) year3,
     count( case when age>=26 and age<=30 then 1 else NULL end) year4,
     count( case when age>=31 and age<=40 then 1 else NULL end) year5,
     count( case when age>=41 then 1 else NULL end) year6,
     count( case when gender=1 then 1 else NULL end) male,
     count( case when gender=2 then 1 else NULL end) female
     from (
     select uin,sum(play_cnt)play_cnt,city_id,age,gender from
     cover_play
     where imp_date>=20130515 and imp_date<=20130603 and id IN (1,2)
     and play_cnt>0 and uin>0
     group by uin,age,gender,city_id) a
     ) a
    
    和这条
     select city_id,sum(play_cnt) vv,count(DISTINCT uin)uv from
     cover_play
     where imp_date>=20130515 and imp_date<=20130603 and id IN (1,2)
     and play_cnt>0 and uin>0 and city_id IN(-1,-12,198,199)
     group by city_id
    
    查询的结果city的不一样,,city_id,gender,age 不唯一,是不是因为 age不一样,导致city分组多分了。。
    头大了
    


网友评论2013-06-06 19:20


    下班后就懒得看这些东西了……楼下上……
    
网友评论2013-06-06 19:22


    看的真拙计
    
网友评论2013-06-06 19:29


    group by uin,age,gender,city_id) a
    
    
    group by city_id 上下两条的分组类别不一样。
    
网友评论2013-06-06 19:32


    路过
    
    我只是进来看看
    
网友评论


    
    
网友评论2013-06-06 19:37


    看起来真让人捉鸡
    
网友评论2013-06-06 19:40


    第二句from都没有,怎么跑。
    
网友评论2013-06-06 19:42


    手机客户端看得真蛋疼
    
网友评论2013-06-06 19:43


    Reply Post by 人牛比没办法 (2013-06-06 19:40):
    第二句from都没有,怎么跑。
    
    可能粘贴掉了,来马桶瞬间被教育了,我真的只写了几个月。大概懂了,分组的问题,一会回去改
    
网友评论2013-06-06 19:45


    请贴运行结果
    你这样描述不清不楚的
    还有你下面一条根本跑不通吧
    
网友评论2013-06-06 19:50


    第一个sql真心牛逼,这么多子查询嵌套性能没问题?会产生多少临时表啊?
    
网友评论2013-06-06 19:52


    虽然看不懂楼主写的什么,但是还是觉得楼主好牛的样子。
    
网友评论2013-06-06 19:55


    Reply Post by cyou4147 (2013-06-06 19:36):
    
    面试的话,如果面试的人写下面这种代码,我直接就把他pass了,就这样。
    缺少程序员最基本的素养:细致(漏from),规范(缩进有问题),高效(这条件关联能再2B一点吗),综上:写这个代码的人绝对不超过2年经验,写sql看起来只有不到1年的水准。
    嘴炮结束,回头看看问题再修改这个回复。
    -----------------------------------------
    看了一遍一头雾水,去掉上面的行转列之外做比较的话。
    第一个的city的分组条件你提到最前面试试,我看你的业务需求像是以city划分,那么不能放在最后一个分组条件上。改成group by city_id,xxx,xxx,xxx这样
    
    这个我也试过了,好像还是不行。我们这边一个人写的模版就是city,gender,age分三次查询然后UNION ALL
    看来也只有这样了。
    
网友评论2013-06-06 20:45


    借贴问个简单的问题
    insert into tb1
    select* from tb_a 或者 select * from tb_b
    写个个判断根据当前日期 montn(current date)的月份来确定tb_a 或者tb_b
    1月用tb_a 剩下月份用 tb_b
    发表回复

    
    
    

上一篇:亚马逊中国 比价月 图书4.9折
下一篇:没有了
关于网站 | 网站声明 | 用户反馈 | 合作伙伴 | 联系我们
Copyright © 2012年2月8日