SQL 101
The first new thing I learnt in 2024 is SQL. I did a try back in 2022 job hunting, and was asked to write SQL quries in Databricks SA interview. I never write one single line of SQL before except for SELECT * FROM table
.
I studies all the SQL grammar for a week and did an interview again, and still failed. No suprise, knowing all the JOIN
grammer doesn’t really help unless you really wrtie SQL in practice.
categrory | EMH | Comments |
---|---|---|
SELECT | ||
1757 | E | WHERE low_fats='Y' and recyclable ="Y" Use = |
584 | E | WHERE IFNULL(referee_id,0)<>2 use <> and IFNULL or WHERE referee_id IS NULL or referee_id<>2 use IS NULL |
1148 | E | SELECT DISTINCE |
1683 | E | WHERE CHAR_LENGTH(content)>15 |
JOIN | ||
1378 | E | FROM table1 LEFT JOIN table2 on table1.id = table2.id |
1581 | E | SELECT COUNT(*) AS col_new .... GROUP BY col1 WHERE col1 NOT IN (SELECT ...) nested and use NOT IN or IN |
197 | E | FROM Weather AS w1 JOIN Weather AS w2 ON DATEDIFF(w1.recordDate, w2.recordDate) = 1 self join to get different col comparison |
1661 | E | FROM table AS a1, table AS a2 WHERE a1.col='a' AND a2.col='b' Choose from the same table twice, compare rows .ROUND(AVG(xxx),3)...GROUP BY |
1280 | E | GROUP X Y find all rows with SAME X and Y col into a group |
570 | M | GROUP BY col HAVING COUNT(*) >=5 !!! Use HAVING instead of WHERE here!!! |
1934 | M | 11. JOIN ... USING common_col_name instead of using ON |
Aggregate | ||
620 | E | a != b, a%2=1 |
1251 | E | SELECT cola+/-/*/clob You can do calc on columns on SELECT |
1211 | E | SUM(CASE WHEN col_a > 100 THEN col_b ELSE 0 END) |
1193 | M | SUBSTR(‘SQL Tutorial’, start, length) |
1174 | M | IF (col = ‘condition’, val_if, val_else) |
ORDER BY and GROUP BY | ||
1141 | E | WHERE (date > "2019-06-27" AND date <= "2019-07-27") |
1070 | M | 1. WHERE () in (Table with same columns) 2. Select cola=colb == Select If(cola=colb, 1, 0) 3. Select MIN(col_a) |
1045 | M | GROUP BY col HAVING COUNT(distinct col2) = (SELECT COUNT(col2) FROM tab1) |