sql語句group?

Tags: 語法, 語句,

Sql語句中有很多技巧,一般除了我們初學時的增刪改查,還有其他很多.

那麼我們今天就來教大家如何使用,查詢語句中的Group by的高級語法.

初級用法的話,大家可以看一下我其他經驗中的一篇.

sql server 2008 Group by的使用方法

工具/原料

Sql Server R2

Mysql

Access

oracle

Sqlite

方法/步驟

我的電腦是Windows7 64位,所以我安裝的是Sql server2008 r2(64位).

大夥安裝的時候也一定要記得看一下自己的操作系統是多少位.你是32位操作系統的就安裝32位的Sqlserver 版本不限制. 2005 2012都可以.

當然,我們的Sql語句在很多數據庫中都是通用的,比如像Mysql數據庫 Access數據庫. Oracle數據庫. Sqlite數據庫 .甚至在我們的Excel中也可以使用Sql語句.

廢話不多說,在我的Sqlserver中新建一個表和一些數據,方便我們學習後面的Group by語句. 如果你是其他數據庫也是這個道理. 我用的是微軟Sqlserver數據庫.

寫上一個創建表的 sql語句. 當然,我們也可以用設計圖創建.

當然我下面的寫法只支持sql server2008數據庫以上的寫法.

create table student

(

stuid int identity(1,1) not null,

stuname nvarchar(10) not null,

stusex char(2) not null,

stuage int null);

insert into student (stuname,stusex,stuage)

values

('李小明','男',25),

('王小紅','女',19),

('趙大虎','男',20),

('李小明','男',22),

('錢小多','男',23),

('劉小梅','女',25);

sql語句group by的高級語法

select * from student;

我們輸入一條查詢語句,顯示出我們剛剛插入的所有數據.

sql語句group by的高級語法

那麼我們再來查一下姓名各出現過多少次.

select stuname,COUNT(*) from student group by stuname;

從上面的結果我們不難看出,我們根據學生姓名進行了分組.

另一種說法其實就是把重複的過濾了.

把學生表中的姓名那一列用group by分組,並且利用聚合函數(count) 統計每個姓名出現的次數.

sql語句group by的高級語法

我們再來創建一個表,為了方便大家學習理解,我就用中文了.

強大的Sqlserver2008是可以支持中文的.

create table 訂單表( 訂單id int identity(1,1) not null, 產品id int not null, 用戶id int not null, 單價 money not null, 數量 int not null, 折扣 numeric(4,3) not null);

insert into 訂單表(產品id,用戶id,單價,數量,折扣)values(1,1,19.5,11,0.75),(2,2,20,4,0.85),(2,1,20,9,0.85),(3,2,10,1,1),(1,3,19.5,3,0.75),(1,4,19.5,2,0.75),(1,5,19.5,14,0.75);

sql語句group by的高級語法

我們顯示一下表中的數據.

select * from 訂單表;

在我們實際開發中,可能我們設計了一個商品訂單管理系統.

但是客戶要我們顯示什麼數據,他可能對你說:"我要你給我打印什麼東西."

這是一個非常複雜的過程,但是他認為這就是一句話的事情.

sql語句group by的高級語法

我們現在來考慮一個實際的問題,我現在要查詢各個商品售出多少件!!

select 產品id,SUM(數量) from 訂單表 group by 產品id;

這條sql語句也挺有難度的. 我們通過這樣子就能算出某個產品的銷售總數量.

sql語句group by的高級語法

select 產品id,SUM(數量) as 銷售總量 from 訂單表 group by 產品id;

當然,我們還可以通過as關鍵字來修改查詢新字段的名稱.

sql語句group by的高級語法

我們來個更有挑戰性的,查詢所有產品的總銷售價格大於100元的產品.

首先我們要知道一個產品的價格等於

商品數量*單價*折扣.

select 產品id,SUM(單價*數量*折扣) AS 商品總銷售金額 from 訂單表 group by 產品idhaving SUM(單價*數量*折扣)>100;這樣就得出了我們想要的結果.

sql語句group by的高級語法

select 用戶id,SUM (單價*數量*折扣) as 消費金額 from 訂單表 group by 用戶id;那麼我們就要寫最後一個案例了,統計用戶一共花了多少錢.

sql語句group by的高級語法

order by的用法我們就說到這裡.

接下來我們會分享更多的SQL語句的高級語法.

相關問題答案