1. 程式人生 > 實用技巧 >sql函式,記一記,練一練,提升一哈!

sql函式,記一記,練一練,提升一哈!

隨著越來越偏向資料開發,發現 只會 select * from 已經不足以滿足業務需求了,系統學習學習內建函式和自定義函式,自我感覺比昨天的那個他高大上一些!

一些過於low的就不再廢話了~~~

##count函式
select
deptno, count(1) 總人數, count(case when job ='SALESMAN' then '1' end) 銷售人數, count(case when job ='MANAGER' then '1' end) 主管人數 from emp group by deptno;--如果不group,會認為所有資料是一組,返回一個數據
##left join先形成一箇中間表,中間表中通過分組標識name進行count條數
SELECT
Websites.name, COUNT(access_log.aid) AS nums FROM access_log LEFT JOIN Websites ON access_log.site_id=Websites.id GROUP BY Websites.name;
##找出總訪問量大於200的網站,括號中select可以省略直接 表名 inner join 表名
SELECT
Websites.name, Websites.url, SUM
(access_log.count) AS nums FROM (access_log INNER JOIN Websites ON access_log.site_id=Websites.id) GROUP BY Websites.name HAVING SUM(access_log.count) > 200;
##加一個where條件
SELECT
Websites.name, SUM(access_log.count) AS nums FROM Websites INNER JOIN access_log ON Websites.id=access_log.site_id
WHERE Websites.alexa < 200 GROUP BY Websites.name HAVING SUM(access_log.count) > 200;
##小括號有值就展示相關的name,url
SELECT
Websites.name, Websites.url FROM Websites WHERE EXISTS (SELECT count FROM access_log WHERE Websites.id = access_log.site_id AND count > 200);

工作中更多的是自定義函式,隨後用到的話再次進行總結!