產品經理學SQL(二)

上一次分享我們講到了單表查詢中的group by(產品經理學SQL)。這一次我們來說說單表查詢中的where和like(模糊查詢)。
1、where 條件
實際工作中分析的時候,有幾千萬行,所以一定要過濾。where就是起到一個過濾的作用,過濾一些你不想要的數(shù)據(jù)。
比較:=,< , > , =
指定范圍:between and(并列,同時滿足條件) or(或,滿足其中一個條件)
集合:in , not in
空值判斷:not null,null
下圖是數(shù)據(jù)表:

例子1:篩選出訂單金額大于10小于200的用戶
selcet member_id
from by_order
where order_money>10 and order_money<200;
查詢的結果如下圖:

因為有的用戶會購買兩單,兩單金額都符合大于10小于200的條件。如果要去重,則使用distinct
selcet distinct?member_id
from by_order
where order_money>20 and order_money<200;
查詢的結果如下圖:

?
例子2:查找訂單狀態(tài)為空的記錄:
selcet ?*
from by_order
where ?status is null
查詢的結果如下:

例子3:不同訂單狀態(tài)會員數(shù)(空其實也是一個狀態(tài))
selcet ?status
? ? ? ? ? ?,count(distinct member_id) as member_number ? ?#"as member_number"取別名 ?
from by_order
group by status;
點擊查詢后效果如下圖:

2、模糊查詢:like
比如我想知道顧客里面姓“張”的有多少個,那我不管你是“張飛“還是”張三豐“,都是姓張。要么”%“號,要么”_“,他們的區(qū)別是:
%:表示任意長度的字符串,長度可以為0;例如:like ‘a%b’(表示以a開頭,b結尾任意長度的內容);
_:一個下劃線就表示一個字符;例如:like ‘a_b’(表示以a為開頭,b結尾任意長度為3個字符的內容)。
以下面的數(shù)據(jù)表為例:

例子1:以A開始,C結尾的記錄
selcet ?*
from by_order
where ?id ?like ?'A%C';
查詢結果如下:

例子2:以A開始,C結尾的三個字符的記錄
selcet ?*
from by_order
where ?id ?like ?'A_C';
查詢結果如下:
?
固定長度的搜索更精準,不固定長度的適合模糊查詢。
下次分享SQL之多表查詢,喜歡的小伙伴可關注公眾號:產品劉
PS:?轉發(fā)此篇文章到朋友圈或者是產品經理群,并截圖發(fā)給微信chanpin628,可以找我領取一份《啟示錄 打造用戶喜愛的產品》電子書。


點擊“閱讀原文”
即可進行報名
