Re: [SQL ] 請問一個Sql寫法
※ 引述《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
討論串 (同標題文章)
Database 近期熱門文章
PTT數位生活區 即時熱門文章
0
18