Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Bảng cheat SQL này cung cấp cho bạn một cái nhìn tổng quan ngắn gọn và thiết thực về các khái niệm SQL mà bạn sẽ cần cho cuộc phỏng vấn xin việc

Chúng tôi dự định dành cho bảng cheat SQL này để giúp bạn bất cứ khi nào bạn cần lướt qua một số khái niệm SQL và ghi nhớ cách chúng hoạt động. Có một cheat sheet để tham khảo đặc biệt hữu ích nếu bạn vẫn chưa quen với một số khái niệm hoặc không sử dụng chúng thường xuyên

Trong bảng cheat SQL này, chúng tôi sẽ giải thích ngắn gọn. Cùng với chúng, mọi khái niệm sẽ được giải thích bằng biểu diễn đồ họa và câu hỏi phỏng vấn từ nền tảng StrataScratch

Và các khái niệm chúng ta sẽ trình bày trong bảng cheat SQL này là

1. THAM GIA

  • CHỖ NỐI BÊN TRÁI
  • THAM GIA BÊN TRONG
  • nhiều tham gia
  • Tự tham gia

2. Chức năng thời gian và ngày tháng

  • DATE_PART()
  • TRÍCH XUẤT()
  • THỜI GIAN

3. Chức năng tổng hợp

  • ĐẾM()
  • TỔNG()
  • AVG()
  • NHỎ NHẤT LỚN NHẤT()

4. Chức năng cửa sổ

  • PHÂN BẰNG
  • ĐẶT BỞI
  • PHẠM VI hoặc HÀNG
  • Chức năng cửa sổ xếp hạng
    1. CẤP()
    2. DENSE_RANK()
    3. SỐ LƯỢNG HÀNG()

5. Đặt toán tử

  • LIÊN HIỆP
  • CÔNG ĐOÀN TẤT CẢ

Bảng cheat SQL. THAM GIA

Mệnh đề THAM GIA trong SQL cho phép bạn sử dụng dữ liệu từ hai hoặc nhiều bảng bằng cách nối chúng qua cùng một cột được tìm thấy trong cả hai bảng

THAM GIA thường xuất hiện nhiều nhất trong cuộc phỏng vấn việc làm là

  • CHỖ NỐI BÊN TRÁI
  • THAM GIA BÊN TRONG
  • nhiều tham gia
  • Tự tham gia

CHỖ NỐI BÊN TRÁI

Giải trình

LEFT JOIN hoặc LEFT OUTER JOIN trả về tất cả dữ liệu từ bảng đầu tiên hoặc bảng bên trái và chỉ các hàng phù hợp từ bảng thứ hai hoặc bảng bên phải. Nếu có các hàng không khớp, nó sẽ trả về giá trị NULL

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10291-sms-confirmations-from-users

Dung dịch

SELECT COUNT(b.phone_number)::float  / COUNT(a.phone_number) * 100 AS perc
FROM fb_sms_sends a
LEFT JOIN fb_confirmers b ON a.ds = b.date
AND a.phone_number = b.phone_number
WHERE a.ds = '08-04-2020'
   AND a.type = 'message';

LEFT JOIN kết nối bảng fb_sms_sends (bảng bên trái) với bảng fb_confirmers. Nó thực hiện điều đó trên các cột ds và ngày từ cả hai bảng. Sử dụng loại THAM GIA này sẽ giúp bạn có được tất cả các hàng từ bảng fb_sms_sends và chỉ các hàng phù hợp từ bảng thứ hai

THAM GIA BÊN TRONG

Giải trình

JOIN hoặc INNER JOIN chỉ xuất ra các hàng phù hợp hoặc các hàng được tìm thấy trong cả hai bảng

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10187-tìm-the-tổng-số-giường-có-sẵn-cho-mỗi-máy-chủ-quốc

Dung dịch

SELECT nationality,
       SUM(n_beds) AS total_beds_available
FROM airbnb_hosts h
INNER JOIN airbnb_apartments a ON h.host_id = a.host_id
GROUP BY nationality
ORDER BY total_beds_available DESC;

INNER JOIN sẽ nối bảng airbnb_hosts với bảng airbnb_apartments. Cột thực hiện việc này là host_id. Tham gia này sẽ chỉ trả về các máy chủ xuất hiện trong cả hai bảng

nhiều tham gia

Giải trình

Nhiều phép nối không phải là một kiểu THAM GIA đặc biệt. Nó đơn giản có nghĩa là tham gia nhiều hơn hai bảng trong khi sử dụng bất kỳ loại SQL nào THAM GIA. Nó hoạt động giống như cách nối hai bảng, nhưng bạn thêm ba, bốn, năm hoặc bất kỳ số lượng bảng nào vào chuỗi THAM GIA

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10300-premium-vs-freemium

Dung dịch

SELECT date, 
 non_paying,
       paying
FROM
  (SELECT date, SUM(CASE
                        WHEN paying_customer = 'yes' THEN downloads
                    END) AS paying,
                SUM(CASE
                        WHEN paying_customer = 'no' THEN downloads
                    END) AS non_paying
   FROM ms_user_dimension a
   INNER JOIN ms_acc_dimension b ON a.acc_id = b.acc_id
   INNER JOIN ms_download_facts c ON a.user_id=c.user_id
   GROUP BY date
   ORDER BY date) t
WHERE (non_paying - paying) > 0
ORDER BY t.date ASC;

Trong giải pháp này, ba bảng được nối trong truy vấn con bằng INNER JOIN. Đầu tiên, các bảng ms_user_dimension và ms_acc_dimension được nối trên cột acc_id. Sau đó, bảng thứ ba, ms_download_facts, được thêm vào bằng INNER JOIN thứ hai. Bảng này được nối với bảng đầu tiên trên cột user_id

TỰ THAM GIA

Giải trình

Một lần nữa, tự tham gia không phải là một mệnh đề THAM GIA cụ thể trong SQL. Bất kỳ THAM GIA nào cũng có thể được sử dụng để tự tham gia. Nó có nghĩa là bạn đang tham gia vào bảng với chính nó

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10011-tìm-tất-cả-số-cặp-có-số-thứ-đầu-nhỏ-hơn-thứ-thứ-hai-một-và-tích-của-hai-số-là-lớn-hơn-

Dung dịch

SELECT DISTINCT n1.number AS num1,
                n2.number AS num2
FROM transportation_numbers n1
INNER JOIN transportation_numbers n2 ON n1.index <> n2.index
WHERE n1.number < n2.number
  AND n1.number * n2.number > 11;

Giải pháp này sử dụng INNER JOIN để tham gia bảng shipping_numbers với chính nó. Nó được thực hiện bằng cách để bảng xuất hiện hai lần trong INNER JOIN. một lần là bàn bên trái và lần thứ hai là bàn bên phải. Cả hai bảng đều được đặt bí danh để bạn có thể phân biệt giữa chúng. Bảng được tự tham gia vào chỉ mục cột

Bảng cheat SQL. Chức năng thời gian và ngày tháng

Các hàm thời gian và ngày tháng là các hàm SQL được sử dụng để tính toán và thao tác các kiểu dữ liệu ngày và giờ. Chúng có thể khác nhau giữa các phương ngữ SQL, nhưng ba phương ngữ phổ biến nhất trong PostgreSQL là

  • DATE_PART()
  • TRÍCH XUẤT()
  • THỜI GIAN

DATE_PART()

Giải trình

Hàm này được sử dụng để lấy một phần ngày hoặc giờ từ dữ liệu. Ví dụ: nó có thể trả về một năm hoặc tháng kể từ ngày hoặc phút từ dữ liệu thời gian

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/9762-tìm-ngày-trong-tuần-có-nhiều-người-đăng-ở nhất

Dung dịch

SELECT DATE_PART('dow', ds_checkin :: DATE) AS day_of_week,
       COUNT(*) AS checkin_count
FROM airbnb_contacts
GROUP BY day_of_week
ORDER BY checkin_count DESC
LIMIT 1;

Hàm DATE_PART được áp dụng cho cột ds_checkin từ bảng airbnb_contacts. Để có được ngày trong tuần, 'dow' phải được viết trong hàm

TRÍCH XUẤT()

Giải trình

Hàm EXTRACT() thực hiện tương tự như hàm DATE_PART(). nó trả về một phần của ngày hoặc giờ. Đây là một hàm tuân theo tiêu chuẩn SQL, trong khi DATE_PART() là hàm PostgreSQL

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/2039-products-report-summary

Dung dịch

SELECT product_category,
       COUNT(transaction_id) AS transactions,
       SUM(sales) AS sales
FROM wfm_transactions AS tr
INNER JOIN wfm_products AS pr ON pr.product_id = tr.product_id
WHERE EXTRACT(YEAR
              FROM transaction_date) = 2017
GROUP BY product_category
ORDER BY sum(sales) DESC;

Hàm EXTRACT() được sử dụng trên cột ngày giao dịch để trích xuất năm từ cột đó. Được sử dụng trong mệnh đề WHERE như trên có nghĩa là nó sẽ chỉ hiển thị các giao dịch từ năm 2017

THỜI GIAN

Giải trình

Hàm INTERVAL được sử dụng để cộng hoặc trừ một khoảng thời gian cho ngày hoặc giờ đã tồn tại

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/2004-số-bình-luận-mỗi-người-dùng-trong-30-ngày-qua

Dung dịch

SELECT user_id,
       SUM(number_of_comments) AS number_of_comments
FROM fb_comments_count
WHERE created_at BETWEEN '2020-02-10'::date - 30 * INTERVAL '1 day' AND '2020-02-10'::date
GROUP BY user_id;

Để trả lời câu hỏi, cần tìm ngày 30 ngày trước ngày hiện tại. Giả định là ngày hiện tại là 2020-02-10. Trừ INTERVAL '1 ngày' từ nó có nghĩa là nó sẽ trừ đi một ngày từ 2020-02-10, tức là 2020-02-09. Nếu 30 * INTERVAL '1 ngày' bị trừ đi, điều này có nghĩa là 30 ngày bị trừ khỏi ngày hiện tại. Điều này dẫn đến việc nhận được các nhận xét từ 30 ngày qua. Để đảm bảo không có bình luận nào sau ngày hôm nay, có điều kiện thứ hai trong mệnh đề WHERE

Bảng cheat SQL. Chức năng tổng hợp

Các hàm tổng hợp SQL là các hàm thực hiện phép tính trên tập hợp các hàng và trả về một giá trị duy nhất

Chúng có thể được biểu diễn theo cách sau

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Các chức năng thường được sử dụng nhất là

  • ĐẾM()
  • TỔNG()
  • AVG()
  • TỐI THIỂU()
  • TỐI ĐA()

Các chức năng tổng hợp cũng có thể được sử dụng như chức năng cửa sổ. Chúng là gì sẽ được giải thích trong phần chức năng của cửa sổ

ĐẾM()

Giải trình

Hàm COUNT() đếm hàng. Có ba cách sử dụng chức năng này. COUNT(*) trả về tất cả các hàng từ bảng, bao gồm các giá trị trùng lặp và giá trị NULL

Cách sử dụng thứ hai là COUNT(biểu thức). Cái này sẽ trả về tất cả các hàng từ bảng, bao gồm cả các bản sao, nhưng sẽ bỏ qua các giá trị NULL

Kết quả COUNT (biểu thức DISTINCT) là số hàng riêng biệt (duy nhất) không có giá trị NULL

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10178-business-open-on-sunday

Dung dịch

SELECT sunday,
       COUNT(*) AS total_business
FROM yelp_business_hours business_hours
LEFT JOIN yelp_business business ON business_hours.business_id = business.business_id
WHERE sunday IS NOT NULL
  AND is_open = 1
GROUP BY sunday
ORDER BY total_business DESC;

Sau khi các bảng được nối và lọc dữ liệu, sử dụng hàm COUNT(*) sẽ đếm số lượng doanh nghiệp trên mỗi khoảng thời gian hoạt động. Trong trường hợp này, sử dụng COUNT(business. business_id) hoặc COUNT(DISTINCT doanh nghiệp. business_id) sẽ mang lại cho bạn kết quả tương tự

TỔNG()

Giải trình

Hàm SUM() là một hàm tổng hợp được sử dụng để lấy tổng giá trị của các hàng

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10127-calculate-samanthas-and-lisas-total-sales-revenue

Dung dịch

________số 8

Giải pháp sử dụng hàm SUM() trên cột sales_revenue để tính doanh số của Samantha và Lisa

AVG()

Giải trình

Hàm AVG() tính giá trị trung bình của các hàng. Nói cách khác, nó tính tổng các giá trị của các hàng và chia kết quả cho số lượng hàng. Nếu có giá trị NULL, AVG() sẽ bỏ qua nó, tôi. e. nó chỉ chia tổng cho số hàng có giá trị không NULL

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi

https. //nền tảng. tầng lớp. com/coding/10077-thu-nhien-theo-chức-vụ-giới-tính

Dung dịch

SELECT e.employee_title,
       e.sex,
       AVG(e.salary + b.ttl_bonus) AS avg_compensation
FROM sf_employee e
INNER JOIN
  (SELECT worker_ref_id,
          SUM(bonus) AS ttl_bonus
   FROM sf_bonus
   GROUP BY worker_ref_id) b ON e.id = b.worker_ref_id
GROUP BY employee_title,
         sex;

Hàm AVG() được áp dụng trên tổng của cột lương và ttl_bonus, vì hai cột này cấu thành tổng lương thưởng. Do đó, truy vấn sẽ hiển thị mức lương trung bình theo chức danh và giới tính của nhân viên

NHỎ NHẤT LỚN NHẤT()

Giải trình

Các hàm tổng hợp MIN() và MAX() là hai mặt của cùng một đồng xu. MIN() trả về giá trị nhỏ nhất hoặc thấp nhất, trong khi MAX() sẽ hiển thị giá trị lớn nhất hoặc cao nhất

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10310-class-hiệu suất

Dung dịch

SELECT nationality,
       SUM(n_beds) AS total_beds_available
FROM airbnb_hosts h
INNER JOIN airbnb_apartments a ON h.host_id = a.host_id
GROUP BY nationality
ORDER BY total_beds_available DESC;
0

Để có được sự khác biệt lớn nhất trong tổng số điểm, điểm tối đa và tối thiểu phải được tính toán. Hàm MAX() và MIN() sẽ làm việc đó khi áp dụng cho cột điểm. Khi các giá trị này được tính toán, chúng phải được trừ đi để có được sự khác biệt giữa điểm cao nhất và điểm thấp nhất

Bảng cheat SQL. Chức năng cửa sổ

Các hàm cửa sổ SQL là các hàm thực hiện phép tính trên các hàng có liên quan đến hàng hiện tại

Chúng tương tự như các hàm tổng hợp được sử dụng với mệnh đề GROUP BY. Sự khác biệt chính là các hàm cửa sổ không thu gọn các hàng riêng lẻ trong khi hiển thị các giá trị tổng hợp

Đây là cách họ làm việc

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Chúng có thể được chia thành ba loại

  • Chức năng cửa sổ tổng hợp
  • Chức năng cửa sổ xếp hạng
  • Hàm cửa sổ giá trị


Người phỏng vấn thường quan tâm nhất đến Chức năng Cửa sổ Xếp hạng

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Tên chức năng của cửa sổ xuất phát từ khung cửa sổ. Đó là cách chia tập hợp dữ liệu thành các khối. Khung cửa sổ có thể là tất cả các hàng có cùng dữ liệu trong (các) cột được chỉ định. Hoặc nó có thể là một số hàng nhất định trước và sau hàng hiện tại

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Cú pháp chức năng cửa sổ là

window_function ( biểu thức ) QUÁ ([PHẦN PHẦN THEO list_of_columns] [ĐẶT HÀNG THEO list_of_columns] [ROW hoặc mệnh đề RANGE])

PHÂN BẰNG

Mệnh đề PARTITION BY được sử dụng để xác định khung cửa sổ. Nói cách khác, cột mà theo đó dữ liệu sẽ được phân vùng được xác định bằng cách sử dụng lệnh PARTITION BY. Chức năng cửa sổ sẽ được thực thi trên từng phân vùng riêng biệt khi điều này được thực hiện

ĐẶT BỞI

ORDER BY là một mệnh đề con khác được sử dụng trong mệnh đề OVER(). Không giống như ORDER BY 'thông thường', nó không được sử dụng để sắp xếp dữ liệu trong đầu ra truy vấn. Trong các chức năng cửa sổ, nó được sử dụng để chỉ định thứ tự thực hiện chức năng cửa sổ. Điều này có thể theo thứ tự tăng dần hoặc giảm dần

PHẠM VI hoặc HÀNG

Phần quan trọng thứ ba của mệnh đề OVER() là mệnh đề RANGE hoặc ROW. Chúng cũng được sử dụng để xác định khung cửa sổ. Họ không làm theo cột của bảng như PARTITION BY. Các mệnh đề RANGE và ROW xác định các hàng bắt đầu và kết thúc của khung cửa sổ

Mệnh đề RANGE thực hiện điều đó một cách logic bằng cách chỉ định các hàng liên quan đến giá trị của hàng hiện tại


Mệnh đề ROW không nhìn vào giá trị của hàng hiện tại. Nó chỉ đơn giản xác định khung cửa sổ theo số hàng trước và/hoặc sau hàng hiện tại

Các tùy chọn để sử dụng các mệnh đề này là

  • TRƯỚC KHÔNG GIỚI HẠN – tất cả các hàng trước hàng hiện tại và bao gồm cả hàng hiện tại
  • SAU KHÔNG GIỚI HẠN – tất cả các hàng sau hàng hiện tại và bao gồm cả hàng hiện tại
  • N PRECEDING – số hàng được xác định trước hàng hiện tại và bao gồm cả hàng hiện tại
  • M FOLLOWING – xác định số hàng sau hàng hiện tại và bao gồm cả hàng hiện tại
  • CURRENT ROW – chỉ hàng hiện tại

Các tùy chọn này có thể được kết hợp tự do theo nhu cầu

CẤP()

Giải trình

RANK() là hàm xếp hạng dữ liệu trong một bảng và bỏ qua các ràng buộc. Điều này có nghĩa là nó sẽ phân bổ cùng một thứ hạng trong đó các giá trị giống nhau, nhưng giá trị không liên kết tiếp theo sẽ được xếp hạng không theo thứ tự. Nó sẽ bỏ qua số bậc phù hợp với số mối quan hệ

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/2022-update-call-duration

Dung dịch

SELECT nationality,
       SUM(n_beds) AS total_beds_available
FROM airbnb_hosts h
INNER JOIN airbnb_apartments a ON h.host_id = a.host_id
GROUP BY nationality
ORDER BY total_beds_available DESC;
1

Giải pháp trên sử dụng hàm cửa sổ RANK() trong truy vấn con. Sau hàm RANK(), mệnh đề OVER() được viết, báo hiệu hàm cửa sổ

Dữ liệu được phân vùng theo ID yêu cầu, có nghĩa là mọi ID yêu cầu sẽ được xếp hạng riêng. ORDER BY nghĩa là thứ tự thực hiện xếp hạng. Trong trường hợp này, xếp hạng sẽ được thực hiện theo ngày tạo theo thứ tự tăng dần

Trong thực tế, điều này có nghĩa là hàm RANK() sẽ xếp hạng ID yêu cầu từ ngày cũ nhất đến ngày mới nhất. Khi tất cả các ngày trong một ID yêu cầu được xếp hạng, các chức năng của cửa sổ sẽ chuyển đến ID yêu cầu tiếp theo và bắt đầu xếp hạng lại từ 1

DENSE_RANK()

Giải trình

DENSE_RANK() cũng là Chức năng Cửa sổ Xếp hạng. Không giống như RANK(), nó không bỏ qua các ràng buộc. Điều này có nghĩa là tất cả các hàng không được liên kết sẽ được xếp hạng theo thứ tự, trong khi các giá trị được liên kết sẽ có cùng thứ hạng

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10161-rating-hosts-by-bed

Dung dịch

SELECT nationality,
       SUM(n_beds) AS total_beds_available
FROM airbnb_hosts h
INNER JOIN airbnb_apartments a ON h.host_id = a.host_id
GROUP BY nationality
ORDER BY total_beds_available DESC;
2

Hàm DENSE_RANK() được giới thiệu ở đây, cũng sử dụng mệnh đề OVER(). Không có mệnh đề PARTITION BY, có nghĩa là việc xếp hạng sẽ được thực hiện trên toàn bộ bảng. Dữ liệu sẽ được xếp hạng theo tổng số giường từ cao nhất đến thấp nhất

SỐ LƯỢNG HÀNG

Giải trình

Chức năng xếp hạng thứ ba phân bổ số hàng cho các hàng. Số hàng được phân bổ tuần tự, cũng bao gồm các giá trị được liên kết. Cũng có thể ROW_NUMBER không trả về cùng một số hàng mỗi lần. Điều này xảy ra khi các giá trị hoặc sự kết hợp của các giá trị trong các cột được sử dụng trong PARTITION BY và ORDER BY không phải là duy nhất

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10351-activity-rank

Dung dịch

SELECT nationality,
       SUM(n_beds) AS total_beds_available
FROM airbnb_hosts h
INNER JOIN airbnb_apartments a ON h.host_id = a.host_id
GROUP BY nationality
ORDER BY total_beds_available DESC;
3

Do câu hỏi yêu cầu trả về một giá trị xếp hạng duy nhất ngay cả khi người dùng có cùng số lượng email, ROW_NUMBER() được sử dụng để xếp hạng. Tên hàm được theo sau bởi mệnh đề OVER() như trong các ví dụ trước. Xếp hạng ở đây được thực hiện theo số lượng email theo thứ tự giảm dần và theo thứ tự bảng chữ cái nếu có mối quan hệ

Bảng cheat SQL. Đặt toán tử

Các toán tử này cho phép kết hợp đầu ra của nhiều truy vấn vào một tập dữ liệu duy nhất

Hai toán tử được sử dụng nhiều nhất là

  • LIÊN HIỆP
  • CÔNG ĐOÀN TẤT CẢ

LIÊN HIỆP

Giải trình

Toán tử UNION chỉ trả về các giá trị duy nhất từ ​​đầu ra của hai hoặc nhiều truy vấn. Phải có số lượng cột bằng nhau trong tất cả các truy vấn để toán tử này hoạt động. Các cột cũng phải có cùng kiểu dữ liệu giữa chúng

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10025-find-all-possible-varieties-what-occur-in-either-of-the-winemag-datasets

Dung dịch

SELECT nationality,
       SUM(n_beds) AS total_beds_available
FROM airbnb_hosts h
INNER JOIN airbnb_apartments a ON h.host_id = a.host_id
GROUP BY nationality
ORDER BY total_beds_available DESC;
4

Các loại rượu riêng biệt phải được tìm thấy riêng biệt bằng cách sử dụng hai câu lệnh CHỌN. Cái đầu tiên sẽ truy vấn bảng winemag_p1, cái thứ hai sẽ truy vấn bảng winemag_p2. Vì câu hỏi chỉ yêu cầu xuất ra các giống duy nhất, toán tử UNION cần được sử dụng. nó được viết đơn giản giữa hai câu lệnh SELECT

CÔNG ĐOÀN TẤT CẢ

Giải trình

Toán tử UNION ALL thực hiện giống như toán tử UNION, với một điểm khác biệt quan trọng. UNION ALL trả về tất cả dữ liệu từ tất cả các truy vấn, bao gồm cả các giá trị trùng lặp

Đại diện đồ họa

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

câu hỏi phỏng vấn

Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu
Bảng cheat SQL cho cuộc phỏng vấn khoa học dữ liệu

Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10008-sum-of-numbers

Dung dịch

SELECT nationality,
       SUM(n_beds) AS total_beds_available
FROM airbnb_hosts h
INNER JOIN airbnb_apartments a ON h.host_id = a.host_id
GROUP BY nationality
ORDER BY total_beds_available DESC;
5

Truy vấn đầu tiên sẽ trả về tổng các số có chỉ số nhỏ hơn 5. Truy vấn thứ hai sẽ thực hiện tương tự, nhưng đối với chỉ mục trên 5. Để hợp nhất kết quả đầu ra của cả hai truy vấn, UNION ALL được viết giữa các câu lệnh SELECT. Tại sao UNION ALL thay vì UNION? . Trên thực tế, chúng giống nhau. Nếu UNION được sử dụng, kết quả sẽ chỉ được hiển thị trong một hàng. Điều này có nghĩa là không nhận được kết quả chính xác vì câu hỏi yêu cầu xuất kết quả trong các hàng riêng biệt