力扣數(shù)據(jù)庫刷題--關(guān)于一些函數(shù)的積累

刷力扣的時候認(rèn)識的一些好用函數(shù)

#1485.按日期分組銷售產(chǎn)品

https://leetcode-cn.com/problems/group-sold-products-by-the-date/

表 Activities:
+-------------+---------+
| 列名 | 類型 |
+-------------+---------+
| sell_date | date |
| product | varchar |
+-------------+---------+
此表沒有主鍵,它可能包含重復(fù)項淳梦。
此表的每一行都包含產(chǎn)品名稱和在市場上銷售的日期。
編寫一個 SQL 查詢來查找每個日期螃宙、銷售的不同產(chǎn)品的數(shù)量及其名稱谆扎。
每個日期的銷售產(chǎn)品名稱應(yīng)按詞典序排列。
返回按 sell_date 排序的結(jié)果表。

Create table If Not Exists Activities (sell_date date, product varchar(20))
Truncate table Activities
insert into Activities (sell_date, product) values ('2020-05-30', 'Headphone')
insert into Activities (sell_date, product) values ('2020-06-01', 'Pencil')
insert into Activities (sell_date, product) values ('2020-06-02', 'Mask')
insert into Activities (sell_date, product) values ('2020-05-30', 'Basketball')
insert into Activities (sell_date, product) values ('2020-06-01', 'Bible')
insert into Activities (sell_date, product) values ('2020-06-02', 'Mask')
insert into Activities (sell_date, product) values ('2020-05-30', 'T-Shirt')

查詢結(jié)果格式如下例所示斥季。
Activities 表:
+------------+-------------+
| sell_date | product |
+------------+-------------+
| 2020-05-30 | Headphone |
| 2020-06-01 | Pencil |
| 2020-06-02 | Mask |
| 2020-05-30 | Basketball |
| 2020-06-01 | Bible |
| 2020-06-02 | Mask |
| 2020-05-30 | T-Shirt |
+------------+-------------+

Result 表:
+------------+----------+------------------------------+
| sell_date | num_sold | products |
+------------+----------+------------------------------+
| 2020-05-30 | 3 | Basketball,Headphone,T-shirt |
| 2020-06-01 | 2 | Bible,Pencil |
| 2020-06-02 | 1 | Mask |
+------------+----------+------------------------------+
對于2020-05-30,出售的物品是 (Headphone, Basketball, T-shirt)映之,按詞典序排列,并用逗號 ',' 分隔蜡坊。
對于2020-06-01杠输,出售的物品是 (Pencil, Bible),按詞典序排列秕衙,并用逗號分隔抬伺。
對于2020-06-02,出售的物品是 (Mask)灾梦,只需返回該物品名峡钓。

方法

select sell_date, count(*) as num_sold,
group_concat(product order by product) as products
from(select distinct sell_date,product from Activities) a 
group by sell_date
order by sell_date

group_concat( [DISTINCT] 要連接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )
1.逗號分隔(默認(rèn))
2.[]這里的都是可選的,根據(jù)要求來
3.最后別忘了group by
參考 https://blog.csdn.net/u012620150/article/details/81945004

#1495上月播放的兒童適宜電影

原題比較簡單,涉及日期轉(zhuǎn)換的函數(shù)
date_format(program_date,"%Y-%m")="2020-06"
注意Y大寫钥屈,小寫的話是20-06

“2020年”的11種寫法
YEAR(sale_date) = 2020
sale_date LIKE '2020%'
sale_date REGEXP '^2020'
LEFT(sale_date,4) = '2020'
MID(sale_date,1,4) = '2020'
SUBSTR(sale_date,1,4) = '2020'
DATE_FORMAT(sale_date,'%Y') = 2020
EXTRACT(YEAR FROM sale_date) = 2020
sale_date BETWEEN '2020-01-01' AND '2020-12-31'
sale_date > '2019-12-31' AND sale_date < '2021-01-01'
sale_date >= '2020-01-01' AND sale_date <= '2020-12-31'

#1543. 產(chǎn)品名稱格式修復(fù)

鏈接:https://leetcode-cn.com/problems/fix-product-name-format

表:Sales
+--------------+---------+
| Column Name | Type |
+--------------+---------+
| sale_id | int |
| product_name | varchar |
| sale_date | date |
+--------------+---------+
sale_id 是該表主鍵
該表的每一行包含了產(chǎn)品的名稱及其銷售日期

寫一個 SQL 語句報告:
product_name 是小寫字母且不包含前后空格
sale_date 格式為 ('YYYY-MM')
total 是產(chǎn)品在本月銷售的次數(shù)
返回結(jié)果以 product_name 升序 排列,如果有排名相同, 再以 sale_date 升序 排列攘残。

Create table If Not Exists Sales (sale_id int, product_name varchar(30), sale_date date)
Truncate table Sales
insert into Sales (sale_id, product_name, sale_date) values ('1', 'LCPHONE', '2000-01-16')
insert into Sales (sale_id, product_name, sale_date) values ('2', 'LCPhone', '2000-01-17')
insert into Sales (sale_id, product_name, sale_date) values ('3', 'LcPhOnE', '2000-02-18')
insert into Sales (sale_id, product_name, sale_date) values ('4', 'LCKeyCHAiN', '2000-02-19')
insert into Sales (sale_id, product_name, sale_date) values ('5', 'LCKeyChain', '2000-02-28')
insert into Sales (sale_id, product_name, sale_date) values ('6', 'Matryoshka', '2000-03-31')

查詢結(jié)果格式如下所示:
Sales 表:
+------------+------------------+--------------+
| sale_id | product_name | sale_date |
+------------+------------------+--------------+
| 1 | LCPHONE | 2000-01-16 |
| 2 | LCPhone | 2000-01-17 |
| 3 | LcPhOnE | 2000-02-18 |
| 4 | LCKeyCHAiN | 2000-02-19 |
| 5 | LCKeyChain | 2000-02-28 |
| 6 | Matryoshka | 2000-03-31 |
+------------+------------------+--------------+

Result 表:
+--------------+--------------+----------+
| product_name | sale_date | total |
+--------------+--------------+----------+
| lcphone | 2000-01 | 2 |
| lckeychain | 2000-02 | 2 |
| lcphone | 2000-02 | 1 |
| matryoshka | 2000-03 | 1 |
+--------------+--------------+----------+
1 月份,賣了 2 個 LcPhones,請注意產(chǎn)品名稱是小寫的渊季,中間可能包含空格
2 月份,賣了 2 個 LCKeychains 和 1 個 LCPhone
3 月份雀鹃,賣了 1 個 matryoshka

方法

select lower(trim(product_name)) as product_name,date_format(sale_date,"%Y-%m") as sale_date,count(*) as total
from Sales
group by lower(replace(product_name," ","")),date_format(sale_date,"%Y-%m")
order by product_name asc,sale_date asc

1.trim() 去除字符串首尾空格 可以用 replace(product_name," ","") 替代嗅骄。
2.lower() 全部變成小寫 upper()全部變成大寫
3.執(zhí)行順序炊林,這樣就清楚為啥group by 后邊不可以跟別名(mysql 除外)
https://blog.csdn.net/u013887008/article/details/93377939

⑦ select 
⑧ distinct
① from table 1 
③ join table 2
② on 連接條件
④ where
⑤ group by
⑥ having
⑨ order by 
⑩ limit

會持續(xù)更新噠~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末当船,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子课梳,更是在濱河造成了極大的恐慌,老刑警劉巖媳板,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異峻凫,居然都是意外死亡析孽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門杜窄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事≡み海” “怎么了凤瘦?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鳞上。 經(jīng)常有香客問我香璃,道長,這世上最難降的妖魔是什么舟误? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任葡秒,我火速辦了婚禮,結(jié)果婚禮上嵌溢,老公的妹妹穿的比我還像新娘眯牧。我一直安慰自己,他們只是感情好赖草,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布学少。 她就那樣靜靜地躺著,像睡著了一般秧骑。 火紅的嫁衣襯著肌膚如雪版确。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天乎折,我揣著相機與錄音阀坏,去河邊找鬼。 笑死笆檀,一個胖子當(dāng)著我的面吹牛忌堂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播酗洒,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼士修,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了樱衷?” 一聲冷哼從身側(cè)響起棋嘲,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎矩桂,沒想到半個月后沸移,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡侄榴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年雹锣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片癞蚕。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡蕊爵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桦山,到底是詐尸還是另有隱情攒射,我是刑警寧澤醋旦,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站会放,受9級特大地震影響饲齐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜咧最,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一捂人、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧窗市,春花似錦先慷、人聲如沸饮笛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巫糙。三九已至,卻和暖如春摇肌,著一層夾襖步出監(jiān)牢的瞬間无午,已是汗流浹背媒役。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宪迟,地道東北人酣衷。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像次泽,于是被迫代替她去往敵國和親穿仪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

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