sql查詢語句典例整理

簡單查詢:

1、SELECT * FROM 表名稱 WHERE 字段名 LIKE '查詢內容'

1)、

SELECT * FROM member WHERE NickName LIKE '貝克漢姆'查詢member表NickName字段值爲'貝克漢姆'數據

 2)、

SELECT * FROM member WHERE NickName LIKE '貝%':查詢member表NickName字段值首位包含“貝”的數據

 3)、

SELECT * FROM member WHERE NickName LIKE%':查詢member表NickName字段值末位包含“姆”的數據

 4)、

SELECT * FROM member WHERE NickName LIKE '%克%'查詢member表NickName字段值中間包含“克”的數據

 

彙總查詢:

1、SELECT SUM(字段名) as '總積分' FROM 表名稱WHERE 字段名,SUM用於計算總和

1)、

SELECT SUM(Source) as '總積分' FROM member WHERE Source:統計member表Source字段值總和

 2、SELECT COUNT(字段名)  as '總人數' FROM 表名稱,COUNT用去統計總數

1)、

SELECT COUNT(NickName)  as '總人數' FROM member :統計member 表NickName字段下的總人數

 2)、

SELECT COUNT( DISTINCT NickName)  as '總人數' FROM member:統計member 表NickName字段下的總人數(去除重複數據)

3)、彙總統計會員註冊時間,語句裏面的year是按年統計,“CreateTime”是會員註冊時間字段,TIMESTAMPDIFF是時間差函數,“now”是基於現在

SELECT id,TIMESTAMPDIFF(year,CreateTime,now()) from member ORDER BY TIMESTAMPDIFF(year,CreateTime,now()) DESC

 

 

3、SELECT MAX(字段名) as '最大值',MIN(字段名) as '最小值' FROM 表名稱 ORDER BY 字段名  (ORDER BY是通過排序的方式展示)MAX、MIN用於展示最大最小值

1)、

SELECT MAX(Source) as '最高分',MIN(Source) as '最低分' FROM member ORDER BY Source:查詢member表Source字段最大值和最小值

 分組查詢:

1、SELECT 字段名 as '積分' ,COUNT(字段名) as '積分人數' FROM 表名稱 GROUP BY 字段名( GROUP BY是通過分組的方式展示)

1)、

SELECT Source as '積分' ,COUNT(Source) as '積分人數' FROM member GROUP BY Source:統計各積分擁有相同積分的人數  

 

 帶條件查詢,

語法基本結構:SELECT  +展示數據(SUM(OrderFee)) +FROM 表(orderinfo ) + WHERE字段(StoreId = 100000000384) +展示方式(GROUP BY StoreId)+條件(HAVING COUNT(OrderNo)>100)或者

SELECT  +展示數據(SUM(OrderFee)) +FROM 表(orderinfo ) + WHERE字段(StoreId = 100000000384) +條件(HAVING COUNT(OrderNo)>100)+展示方式(ORDER BY StoreId)

 1、SELECT 字段名,SUM(字段名) as '全部訂單總金額' ,AVG(字段名) as '訂單平均值',COUNT(字段名) as '訂單總數' FROM 表名稱GROUP BY 字段名

1)、

SELECT StoreId ,SUM(OrderFee) as '全部訂單總金額' ,AVG(OrderFee) as '訂單平均值',COUNT(OrderNo) as '訂單總數' FROM orderinfo GROUP BY StoreId:根據店鋪ID分組,展示全部訂單、訂單平均值、訂單總數

 2)、

SELECT StoreId ,SUM(OrderFee) as '全部訂單總金額' ,AVG(OrderFee) as '訂單平均值',COUNT(OrderNo) as '訂單總數' FROM orderinfo GROUP BY StoreId  HAVING COUNT(OrderNo)>100根據店鋪ID分組,展示全部訂單、訂單平均值、訂單總數,且保留訂單總數大於100的數據

 3)、

SELECT SUM(OrderFee) as '全部訂單總金額' ,AVG(OrderFee) as '訂單平均值',COUNT(OrderNo) as '訂單總數' FROM orderinfo WHERE StoreId = 100000000384統計出指定店鋪下的全部訂單總金額、訂單平均值、訂單總數

 4)、

SELECT StoreId as '店鋪ID',COUNT(OrderFee) as '金額人數' FROM orderinfo WHERE OrderFee>50 GROUP BY StoreId :根據店鋪ID分組,統計訂單金額大於50訂單數

5)、

SELECT StoreId,AVG(OrderFee) FROM orderinfo GROUP BY StoreId ORDER BY AVG(OrderFee):根據店鋪id分組,計算店鋪訂單均值排序

 

 6)、

SELECT OrderFee ,OrderNo FROM orderinfo WHERE StoreId = 100000000384  HAVING OrderFee>100 ORDER BY OrderFee DESC:訂單金額降序顯示(大到小)

SELECT OrderFee ,OrderNo FROM orderinfo WHERE StoreId = 100000000384  HAVING OrderFee>100 ORDER BY OrderFee ASC訂單金額升序顯示(小到大)

 

 7)、

SELECT OrderFee,COUNT(OrderFee) FROM orderinfo WHERE StoreId = 100000000384 GROUP BY OrderFee :指定店鋪按照訂單金額排序且統計每檔金額的訂單數

8)、區間值查詢,統計各區間訂單值內的訂單數,結果以區間值進行分組顯示

select 
    case 
      when OrderFee is null or OrderFee < 100 then '100以內的訂單' 
      when OrderFee >= 100 and OrderFee <=1000 then '100到1000的訂單'
      when OrderFee > 100000 then '大於10000的訂單'
    end 
    as name, 
    count(*) as num
from orderinfo
group by name;

 

 

2、組合條件查詢

1)、查詢訂單價格區間90-100和190-200的訂單數據(組合條件查詢)

(SELECT *  from orderinfo WHERE Productfee > '90' and Productfee < '100') union
(SELECT *  from orderinfo WHERE Productfee > '190' and Productfee < '200');

 3、跨表查詢

1)、統計memberaccount 表裏積分數大於100的用戶,且(查詢)用戶在member 表內City值爲Changsha(跨表查詢)

SELECT MemberID, TotalPoints FROM memberaccount where MemberID  in (SELECT id FROM member WHERE City='Changsha') GROUP BY MemberID HAVING TotalPoints>100

2)、統計memberaccount表TotalFee,member表CreateTime,且以MemberId分組顯示。分析查詢語句,表後帶字段名,FROM一個表JOIN一個表,WHERE接不同字段名但相信數據,這樣兩個表的數據才能正常匹配

SELECT memberaccount.MemberId , memberaccount.TotalFee, member.CreateTime FROM memberaccount JOIN member WHERE memberaccount.MemberId = member.Id GROUP BY memberaccount.MemberId

 4、跨庫查詢

1),統計`xkdcore_newfat_ordermanage`庫`orderinfo`表內訂單數,已MemberId方式分組,且展示訂單數大於200的MemberId。統計基於展示的MemberId,查詢`xkdcore_newfat_membermanage`庫`memberaccount`表下對應MemberId的積分和消費金額

SELECT MemberID, TotalPoints,TotalFee FROM `xkdcore_newfat_membermanage`.`memberaccount` where MemberID  in (SELECT MemberId FROM `xkdcore_newfat_ordermanage`.`orderinfo` GROUP BY MemberID  HAVING COUNT(OrderNo)>200) GROUP BY MemberID 

跨庫查詢的的關鍵是,需要在查詢語句中寫入庫名,如“xkdcore_newfat_membermanage”、“xkdcore_newfat_ordermanage”,然後從一個查詢結果中提取信息進行二次查詢。這裏是先查出MemberId,再通過MemberId查詢出積分和消費金額

 

 僅執行查詢訂單數查詢語句

SELECT MemberId FROM `xkdcore_newfat_ordermanage`.`orderinfo` GROUP BY MemberID  HAVING COUNT(OrderNo)>200

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章