作者agogoman (阿哥哥~)
看板Database
标题Re: [SQL ] 请问一个Sql写法
时间Sat Aug 12 05:22:45 2006
※ 引述《agogoman (阿哥哥~)》之铭言:
: 假如有两张表格 A 和 B , 我想要用SQL选出 前三位 Sales最高的店名
: , 则语法要用那一个函数 , 我是想到先用max函数取的最高,在用
: UNION ALL 这函数连接第二个query,再把第二个query的max函数条件多加上不能等於
: 最高的,依序得到三个最高的store_name,但我觉得这样写好像不是很好,或者说
: 幼稚园才这样想 =__= , 因为本身对sql不是说很熟,大部份摸了大约几个月,应该
: 是有甚麽直接取得的函数,(也请大大帮我看看我的想法对不对)
: A
: store_name Sales
: AA 100
: AB 200
: AC 300
: AD 400
: B
: Area store_name
: Kaoshiung AB
: Taipei AA
: Taichung AC
: Taipei AD 烦请大大点一下就好 , 如用那个函数之类的
: thx,发表在这边是因其它版几乎都没甚麽人Q.Q
刚想了一下 , 但感觉还是怪怪的 , 请大大帮我check一下..
1. select Max(a.sales) ANS1, MAX(b.sales) ANS2, MAX(c.sales) ANS3
2. from A a , A b , A c
3. where ANS2 <> ANS1
4. and ANS3 NOT IN(ANS1,ANS2);
---------------------
比较有疑问的是在第3行,我给定ans2的值不能等於最大,那它会自动带出第二大
的值出来吗 ? 还是取的得是null ?
另外假如要取得的值是要前面20笔的话,我上面的写法肯定爆炸...
有甚麽另外的取法吗 ?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.164.213