用SQL找出每天新增多少用戶

用SQL找出每一天新增的用戶,是SQL面試考題之一;也是大家需要熟悉的SQL語法。因為工作上也滿常用的,像是尋找特定時間區間內某個table每天新增的資料筆數。

我記得之前還在台灣工作時,曾待過專門做maintenance的部門,每天的工作不是開發新功能,而是需要連線到不同國家的客戶的環境去debug。我當時英文口說還是和native speaker有點距離,所以公司會配一個位在菲律賓遠端工作的同事,和我一起連線到客戶的環境,我和菲律賓的溝通還是用英文,但是和客戶之間的溝通80%都由菲律賓的同事處理,我則是負責解決Bug;有次為了確認之前部署的API是否有打通,所以需要查詢某個table在API打通之後每天新增的資料筆數。就用到了類似的語法。

Continue reading

The ORDER BY clause is invalid in some scenarios

在做數據分析時,我們常常需要讓資料按照特定column來排序需要用到ORDER BY clause,但是在MSSQL中,ORDER BY clause沒辦法在views、inline functions、derived tables、subqueries和CTE中使用。除非有和TOP、OFFSET或FOR XML一起使用。(因為通常在這種情況下,和TOP、OFFSET或FOR XML一起使用整個query statement才有意義)

Continue reading

Convert rows to columns in SQL

我最近遇到需要把row轉為column的需求。所以就把row轉為column的技巧研讀了一下。通常是因為這個table儲存了一筆筆類似transaction的紀錄,當我們需要把transactions根據欄位的值aggregate起來做成報表的時候,就會用到把row轉為column的寫法。這也就是為什麼在做資料分析時,最好要熟悉SQL語法的原因之一,畢竟手邊拿到的資料格式,未必是適合做資料分析的格式。

Continue reading