一道很有技術(shù)含量的SQL面試題茬祷,多方法全方位完美解答

問題:把衣服、褲子并蝗、褲子祭犯、鞋子這些類別中點(diǎn)擊量最高的一條記錄找出來,并按降序排列滚停!

題目數(shù)據(jù)表


查詢結(jié)果圖

解題思路:

1. 審題(需要用到的SQL語句)

“衣服盹憎、褲子、帽子铐刘、鞋子這些類別”:進(jìn)行分組 ? ?group by?

“點(diǎn)擊量最高”:復(fù)合函數(shù) ?Max()

“降序排列”:排序關(guān)鍵字 order by ? ? ? 降序 ?desc

需要顯示出來的字段:productID陪每,productName,最高 clickNum

2. ?SQL語句分解

方法1:

首先镰吵,?查詢出點(diǎn)擊量最高的parentID檩禾,并將查詢結(jié)果取別名為b表

select parentid, max(clicknum) clicknum ?FROM productinfo GROUP BY parentid?

查詢結(jié)果如圖:b 表

b表

查詢出表中的productid, productname, clicknum相關(guān)數(shù)據(jù),取別名為a表:

ELECT productid, productname, clicknum FROM productinfo as ?a ;

a 表

從a疤祭、b表中查找parentid & clicknum 都相等的數(shù)據(jù):

SELECT a.productid, a.productname, a.clicknum FROM productinfo a, b WHERE a.parentid = b.parentid AND a.clicknum = b.clicknum;

比對后的結(jié)果

具體SQL圖& SQL語句如下:

方法1

方法1 SQL如下

SELECT a.productid, a.productname, a.clicknum

FROM productinfo a,(

SELECT parentid, max(clicknum) clicknum?

FROM productinfo GROUP BY parentid ) b

WHERE a.parentid = b.parentid AND a.clicknum = b.clicknum

ORDER BY a.clicknum DESC;


方法2:?

方法2

方法2 SQL如下:

SELECT p.productid, p.productname, p.clicknum

FROM class c

JOIN (

SELECT * FROM productinfo p WHERE ?clicknum = (

SELECT max(clicknum) FROM productinfo

WHERE parentid = p.parentid )

) p ON c.classid = p.parentid

ORDER BY p.clicknum DESC;


方法3:

新建表a1: ? select? *? from productinfo? a1


a1表

找出productinfo表中 parentid與a表中相等盼产,clicknum比a表中大的數(shù)據(jù):

select 1 from productinfo where a1.parentid = parentid and a1.clicknum < clicknum ?查找出來的結(jié)果相當(dāng)于又新建了一張表,即下面的 c 表勺馆。

為方便理解戏售,將兩表放一起(數(shù)據(jù)都是一樣的):

兩表對比

得到的結(jié)果如下侨核,相當(dāng)于又一個(gè)新表,為方便理解起名為 c 表:

c 表


從productinfo表中找c表中沒有的數(shù)據(jù):

select? *? from productinfo? a where not exists ?c


方法3?

方法3 SQL如下:

select? *? from productinfo ?a

where not exists (

select 1 from productinfo

where

a.parentid = parentid

and clicknum > a.clicknum

)

order by clicknum desc;



方法4:

簡單數(shù)據(jù)

數(shù)據(jù)簡單的方法4灌灾,不可取


當(dāng)新增一條特殊記錄

insert into productInfo (productID, productName, parentID, clickNum) values (10,'女士鞋子1',10,30);

再次查詢

select?*?from?productinfo?where?clicknum?in?(select?max(clickNum)?from?productinfo?group?by?parentid)?order?by?clicknum?desc;

結(jié)果

該條記錄不應(yīng)出現(xiàn)

使用in貪婪匹配搓译,再次查詢

select * from productInfo

where (clickNum, parentID)

in (select max(clickNum),parentID from productInfo group by parentId)

order by clickNum desc

使用in貪婪匹配(正確的方法4)

這樣就去除了 parentID的 Max clickNum與另一種parentID 非 Max clickNum相同的特殊情況

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市锋喜,隨后出現(xiàn)的幾起案子些己,更是在濱河造成了極大的恐慌,老刑警劉巖嘿般,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件段标,死亡現(xiàn)場離奇詭異,居然都是意外死亡炉奴,警方通過查閱死者的電腦和手機(jī)逼庞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瞻赶,“玉大人赛糟,你說我怎么就攤上這事」菜#” “怎么了虑灰?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長痹兜。 經(jīng)常有香客問我穆咐,道長,這世上最難降的妖魔是什么字旭? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任对湃,我火速辦了婚禮,結(jié)果婚禮上遗淳,老公的妹妹穿的比我還像新娘拍柒。我一直安慰自己,他們只是感情好屈暗,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布拆讯。 她就那樣靜靜地躺著,像睡著了一般养叛。 火紅的嫁衣襯著肌膚如雪种呐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天弃甥,我揣著相機(jī)與錄音爽室,去河邊找鬼。 笑死淆攻,一個(gè)胖子當(dāng)著我的面吹牛阔墩,可吹牛的內(nèi)容都是我干的嘿架。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼啸箫,長吁一口氣:“原來是場噩夢啊……” “哼耸彪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起筐高,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤搜囱,失蹤者是張志新(化名)和其女友劉穎丑瞧,沒想到半個(gè)月后柑土,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绊汹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年稽屏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片西乖。...
    茶點(diǎn)故事閱讀 40,769評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狐榔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出获雕,到底是詐尸還是另有隱情薄腻,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布届案,位于F島的核電站庵楷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏楣颠。R本人自食惡果不足惜尽纽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望童漩。 院中可真熱鬧弄贿,春花似錦、人聲如沸矫膨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侧馅。三九已至危尿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間施禾,已是汗流浹背脚线。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留弥搞,地道東北人邮绿。 一個(gè)月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓渠旁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親船逮。 傳聞我的和親對象是個(gè)殘疾皇子顾腊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 50個(gè)常用的sql語句Student(S#,Sname,Sage,Ssex) 學(xué)生表Course(C#,Cname...
    哈哈海閱讀 1,235評論 0 7
  • SQL SELECT 語句 一、查詢SQL SELECT 語法 (1)SELECT 列名稱 FROM 表名稱 (2...
    有錢且幸福閱讀 5,459評論 0 33
  • 基礎(chǔ)語句 1. 創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE database_name 2. 刪除數(shù)據(jù)庫 drop...
    敲代碼的本愿閱讀 1,029評論 1 7
  • 知道蔡崇達(dá)已經(jīng)很久挖胃,知道他的《皮囊》也已經(jīng)很久杂靶,只是一直都沒有看。經(jīng)典的書太多了酱鸭,而年輕編輯的書吗垮,我也看過幾本,無...
    草蒙茸閱讀 430評論 4 6
  • 一抹夕陽漸漸消去凹髓, 幽黑吞噬了光明烁登, 群鳥驚散于炊煙之中, 浮香暗涌蔚舀, 誘惑著轆轆饑腸饵沧, 拖著疲憊的步伐, 逃離了...
    曉月華夢閱讀 145評論 2 10