sql — 题

来源:互联网 发布:怎样短期网络投资理财 编辑:程序博客网 时间:2024/06/06 02:52

 csdn申请很久了,几乎没有用过,现在随便写点东西,装饰以下,呵呵!

表字段和数据如下:

 win,     dtime

'y',        '1999-01-02 00:00:00'
'y',        '1999-01-02 00:00:00'
'y',        '1999-01-02 00:00:00'
'y',        '1999-01-02 00:00:00'
'n',       '1999-01-02 00:00:00'
'n',       '1999-01-02 00:00:00'
'n',       '1999-01-02 00:00:00'
'n',       '1999-01-02 00:00:00'
'n',       '1999-01-02 00:00:00'
'y',       '1988-12-01 00:00:00'
'y',       '1988-12-01 00:00:00'
'y',       '1988-12-01 00:00:00'
'y',       '1988-12-01 00:00:00'
'n',       '1988-12-01 00:00:00'
'n',       '1988-12-01 00:00:00'
'n',       '1988-12-01 00:00:00'
'n',       '1988-12-01 00:00:00'

根据上面表的结构和内容,写一个sql语句得到下面的结果

dt,                                          lost,       win

'1988-12-01 00:00:00',       4,          4
'1999-01-02 00:00:00',       5,          4

当时看到这个试题的时候,我的第一个概念就是分组排序,可是想想分组排序出来也不可能是3个字段,应该会需要别的东西,可是我已经很久没有写这些复杂的sql语句了,当时脑子只是会乱,可能出现的词语,联合,连接。。等等都出现了,可是就是不会写(因为是用笔书面作答),回到家里思考了以下,用了几分钟得到了结果(sql客户端工具直接调试),写完后只有一个概念他妈的还是挺复杂的,就算是一个经常使用sql人员,在现场用笔作答,也不是那么容易的,何况我们都好久没有写复杂语句了,我们容易吗,不知道那些出题的人想考察什么。处于什么目的,是不是吧所有人都考到了,就显示出他的高明,厉害了,就可以一次来说你能力不行了,你要的薪水太高了,等等。。。我们被批的一无是处,他们却高高在上洋洋得意,要是反过来给他们去做,不知道他能不能做出来。就算做出来,在实际工作中能起到多大作用。。。这样的考察又有多大意义呢?

以下是我写的sql

select * from (select dtime as dt,count(*) as lost from table1 where win='n' group by dtime)as t1 LEFT OUTER JOIN(select dtime as dt,count(*) as win from table1  where win='y' group by dtime)as t2 on t1.dt= t2.dt;

那位有更简单,更好的,可以贴出来。共同学习

 

原创粉丝点击