HackerRank 解鎖 - The PADS

DigNo Ape-avatar-img
發佈於SQL
更新於 發佈於 閱讀時間約 3 分鐘
raw-image

HackerRank - The PADS 這道題目可以說是很典型的 字串處理分組計數 題型。這篇就來拆解這道題目,從題目概述、輸入格式、輸出格式到 SQL 解法,一步步分析如何解決這道題目。(本篇以MS SQL Server語法教學)


題目概述

OCCUPATIONS 表中生成以下兩個結果:

  1. 輸出姓名列表,但要加上對應職業的首字母,例如 Jane(A), Jenny(D)
  2. 統計每種職業的數量,並按照特定格式輸出,例如:
There are a total of X doctors.
  1. 排序規則
    • 第一部分根據 Name 升序排序
    • 第二部分先按 職業出現次數升序,如果次數相同,再按照 職業名稱的字母順序 排列。


Input 格式

OCCUPATIONS 表的結構如下:

raw-image

OCCUPATIONS 表中包含以下數據 (範例):

raw-image
  • Name:員工姓名
  • Occupation:職業(Doctor, Professor, Singer, Actor


Output 格式

查詢結果需要拆成兩個部分輸出:

第一部分:姓名列表 + 職業首字母

Ashley(P)
Christeen(P)
Jane(A)
Jenny(D)
Julia(A)
Ketty(P)
Maria(A)
Meera(S)
Priya(S)
Samantha(D)

這部分按照 Name 升序排列,並將職業首字母加到姓名後。

第二部分:統計職業數量

There are a total of 2 doctors.
There are a total of 2 singers.
There are a total of 3 actors.
There are a total of 3 professors.

這部分根據職業的數量 升序排序,如果數量相同,則按照 職業名稱字母順序 排列。


SQL 解法

第一部分:姓名 + 職業首字母

這部分需要 字串拼接 (+),並按照 Name 排序:

SELECT Name + '(' + LEFT(Occupation,1) + ')'
FROM OCCUPATIONS
ORDER BY Name;

關鍵點

  • LEFT(Occupation,1):取得職業的第一個字母。
  • +:在 SQL Server 中,+ 用來拼接字串。
  • ORDER BY Name:確保結果按照姓名 升序排序

第二部分:統計職業數量

這部分需要 COUNT(*) + GROUP BY,並將結果格式化:

SELECT 'There are a total of ' + CAST(COUNT(*) AS NVARCHAR(10)) + ' ' + LOWER(OCCUPATION) + 's.'
FROM OCCUPATIONS
GROUP BY OCCUPATION
ORDER BY COUNT(*), OCCUPATION;

關鍵點

  • COUNT(*):計算該職業出現的次數。
  • CAST(COUNT(*) AS NVARCHAR(10)):確保數字能正確與字串拼接。
  • LOWER(OCCUPATION):將職業名稱轉為小寫,符合題目格式。
  • ORDER BY COUNT(*), OCCUPATION:先按職業數量排序,數量相同時按字母順序排序。



謝謝您花時間將此篇文章讀完,若覺得對您有幫助可以幫忙按個讚、分享來或是珍藏喔!也歡迎Follow我的ThreadsFB,持續追蹤生產力工具、商業分析、商業英文的實用範例,提升自己的職場力喔!


留言
avatar-img
留言分享你的想法!
avatar-img
DigNo Ape 數遊原人
54會員
138內容數
我們秉持著從原人進化的精神,不斷追求智慧的累積和工具的運用來提升生產力。我們相信,每一個成員都擁有無限的潛力,透過學習和實踐,不斷成長和進步。
你可能也想看
Thumbnail
Die Wörterliste Halbtagsstelle (n, f) Areitgeber (n, m) = (eng.) employer Arbeitnehmer (n, m) = (eng.) employee Arbeitnehmerin (n, f) = female emp
Thumbnail
Die Wörterliste Halbtagsstelle (n, f) Areitgeber (n, m) = (eng.) employer Arbeitnehmer (n, m) = (eng.) employee Arbeitnehmerin (n, f) = female emp
Thumbnail
【特殊圖表教學目錄傳送門 : EXCEL特殊圖表大合輯 | 持續更新中】 這集要分享可以輕鬆看出排名趨勢的視覺化圖表,可以藉由各線條快速掌握每個人或者是項目的平名變化與趨勢 【🎗️範例展示】 原始資料:左側每位人員在各個月份的業績表現 視覺圖表:把左邊人員的業績,以每個月排
Thumbnail
【特殊圖表教學目錄傳送門 : EXCEL特殊圖表大合輯 | 持續更新中】 這集要分享可以輕鬆看出排名趨勢的視覺化圖表,可以藉由各線條快速掌握每個人或者是項目的平名變化與趨勢 【🎗️範例展示】 原始資料:左側每位人員在各個月份的業績表現 視覺圖表:把左邊人員的業績,以每個月排
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗 🔗E
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗 🔗E
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 ♐人力資訊儀表板分集 本次人力資訊儀錶板預計分成5集依循漸進逐步完成 資料整
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 ♐人力資訊儀表板分集 本次人力資訊儀錶板預計分成5集依循漸進逐步完成 資料整
Thumbnail
🔐 發現招募其實是一個解鎖的過程,過往的成功經驗,即便相同職缺,也會因用人單位不同,無法完全複製貼上。
Thumbnail
🔐 發現招募其實是一個解鎖的過程,過往的成功經驗,即便相同職缺,也會因用人單位不同,無法完全複製貼上。
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 ♐人力資訊儀表板分集 本次人力資訊儀錶板預計分成5集依循漸進逐步完成 資料整理與人力資訊取得 區域樞紐分析+環圈圖 (本集教學) 性別樞紐分析+圖像
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 ♐人力資訊儀表板分集 本次人力資訊儀錶板預計分成5集依循漸進逐步完成 資料整理與人力資訊取得 區域樞紐分析+環圈圖 (本集教學) 性別樞紐分析+圖像
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News