?? 1、專欄介紹
「SQL面試題庫」是由 不是西紅柿 發(fā)起,全員免費(fèi)參與的SQL學(xué)習(xí)活動(dòng)。我每天發(fā)布1道SQL面試真題,從簡單到困難,涵蓋所有SQL知識(shí)點(diǎn),我敢保證只要做完這100道題,不僅能輕松搞定面試,代碼能力和工作效率也會(huì)有明顯提升。
1.1 活動(dòng)流程
- 整理題目:西紅柿每天無論刮風(fēng)下雨,保證在8am 前,更新一道新鮮SQL面試真題。
- 粉絲打卡:粉絲們可在評(píng)論區(qū)寫上解題思路,或者直接完成SQL代碼,有困難的小伙伴不要著急,先看別人是怎么解題的,邊看邊學(xué),不懂就問我。
- 交流討論:為了方便交流討論,可進(jìn)入 數(shù)據(jù)倉庫 。
- 活動(dòng)獎(jiǎng)勵(lì):我每天都會(huì)看評(píng)論區(qū)和群里的內(nèi)容,對(duì)于積極學(xué)習(xí)和熱心解答問題的小伙伴,紅包鼓勵(lì),以營造更好的學(xué)習(xí)氛圍。
1.2 你的收獲
-
增強(qiáng)自信,搞定面試:在求職中,SQL是經(jīng)常遇到的技能點(diǎn),而這些題目也多數(shù)是真實(shí)的面試題,刷題可以讓我們更好地備戰(zhàn)面試,增強(qiáng)自信,提升自己的核心競(jìng)爭力。
-
鞏固SQL語法,高效搞定工作:通過不斷練習(xí),能夠熟悉SQL的語法和常用函數(shù),掌握SQL核心知識(shí)點(diǎn),提高SQL編寫能力。代碼能力提升了,工作效率自然高了。
-
提高數(shù)據(jù)處理能力、鍛煉思維能力:SQL是數(shù)據(jù)處理的核心工具,通過刷題可以讓我們更好地理解數(shù)據(jù)處理的過程,提高數(shù)據(jù)分析的效率。SQL題目的難度不一,需要在一定時(shí)間內(nèi)解決問題,培養(yǎng)了我們對(duì)問題的思考能力、解決問題的能力和對(duì)時(shí)間的把控能力等。
?? 2、今日真題
題目介紹: 報(bào)告的記錄 II reported-posts-ii
難度中等
SQL架構(gòu)
動(dòng)作表:
Actions
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| user_id | int |
| post_id | int |
| action_date | date |
| action | enum |
| extra | varchar |
+---------------+---------+
這張表沒有主鍵,并有可能存在重復(fù)的行。
action 列的類型是 ENUM,可能的值為 ('view', 'like', 'reaction', 'comment', 'report', 'share')。
extra 列擁有一些可選信息,例如:報(bào)告理由(a reason for report)或反應(yīng)類型(a type of reaction)等。
移除表:
Removals
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| post_id | int |
| remove_date | date |
+---------------+---------+
這張表的主鍵是 post_id。
這張表的每一行表示一個(gè)被移除的帖子,原因可能是由于被舉報(bào)或被管理員審查。
編寫一段 SQL 來查找:在被報(bào)告為垃圾廣告的帖子中,被移除的帖子的每日平均占比,四舍五入到小數(shù)點(diǎn)后 2 位。
查詢結(jié)果的格式如下:
``` Actions table: +---------+---------+-------------+--------+--------+ | user_id | post_id | action_date | action | extra | +---------+---------+-------------+--------+--------+ | 1 | 1 | 2019-07-01 | view | null | | 1 | 1 | 2019-07-01 | like | null | | 1 | 1 | 2019-07-01 | share | null | | 2 | 2 | 2019-07-04 | view | null | | 2 | 2 | 2019-07-04 | report | spam | | 3 | 4 | 2019-07-04 | view | null | | 3 | 4 | 2019-07-04 | report | spam | | 4 | 3 | 2019-07-02 | view | null | | 4 | 3 | 2019-07-02 | report | spam | | 5 | 2 | 2019-07-03 | view | null | | 5 | 2 | 2019-07-03 | report | racism | | 5 | 5 | 2019-07-03 | view | null | | 5 | 5 | 2019-07-03 | report | racism | +---------+---------+-------------+--------+--------+
Removals table: +---------+-------------+ | post_id | remove_date | +---------+-------------+ | 2 | 2019-07-20 | | 3 | 2019-07-18 | +---------+-------------+
Result table: +-----------------------+ | average_daily_percent | +-----------------------+ | 75.00 | +-----------------------+ 2019-07-04 的垃圾廣告移除率是 50%,因?yàn)橛袃蓮執(zhí)颖粓?bào)告為垃圾廣告,但只有一個(gè)得到移除。 2019-07-02 的垃圾廣告移除率是 100%,因?yàn)橛幸粡執(zhí)颖慌e報(bào)為垃圾廣告并得到移除。 其余幾天沒有收到垃圾廣告的舉報(bào),因此平均值為:(50 + 100) / 2 = 75% 注意,輸出僅需要一個(gè)平均值即可,我們并不關(guān)注移除操作的日期。 ```
```sql SELECT ROUND(AVG(proportion) * 100, 2) AS average_daily_percent
FROM ( SELECT actions.action_date, COUNT(DISTINCT removals.post_id)/COUNT(DISTINCT actions.post_id) AS proportion FROM actions LEFT JOIN removals ON actions.post_id = removals.post_id WHERE extra = 'spam' GROUP BY actions.action_date ) a
```文章來源:http://www.zghlxwxcb.cn/news/detail-451516.html
要理解spam的含義文章來源地址http://www.zghlxwxcb.cn/news/detail-451516.html
- 已經(jīng)有靈感了?在評(píng)論區(qū)寫下你的思路吧!
到了這里,關(guān)于「SQL面試題庫」 No_63 報(bào)告的記錄 II的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!