1樓:匿名使用者
1、建立測試表,62616964757a686964616fe78988e69d8331333431373863
create table test_stu(id number, u_name varchar2(20), subject varchar2(20));
create table test_subj(id number, subject varchar2(20));
2、插入測試資料
insert into test_stu values(1,'張三','英語');
insert into test_stu values(2,'李四','德語');
insert into test_stu values(3,'王五','日語');
insert into test_stu values(4,'小明','英語');
insert into test_stu values(5,'小狗','法語');
insert into test_subj values(1,'英語');
insert into test_subj values(2,'德語');
insert into test_subj values(3,'日語');
insert into test_subj values(4,'法語');
3、查詢表中所有記錄數,select t.*, rowid from test_subj t,
4、編寫sql,統計test_subj總記錄數,及每個科目選修學生數;
select count(distinct t.id) as "小計",
count(case when subject='英語' then 1 end) as "英語",
count(case when subject='德語' then 1 end) as "德語",
count(case when subject='日語' then 1 end) as "日語"
from (select t.*
from test_subj t, test_stu b
where t.subject = b.subject) t
2樓:匿名使用者
sqlserver為例
建立表及插入資料
create table 姓名錶
(id int,
u_name varchar(10),
subject varchar(10))
create table 科目表
(id int,
s_name varchar(10))
insert into 姓名錶 values (1,'張三','英語
62616964757a686964616fe59b9ee7ad9431333337373562')
insert into 姓名錶 values (2,'李四','德語')
insert into 姓名錶 values (3,'王五','日語')
insert into 姓名錶 values (4,'小明','英語')
insert into 姓名錶 values (5,'小狗','法語')
insert into 科目表 values (1,'英語')
insert into 科目表 values(2,'德語')
insert into 科目表 values(3,'日語')
insert into 科目表 values(4,'法語')
然後需要建立一個檢視
create view v_subject
asselect a.s_name,sum(case when a.s_name=b.subject then 1 else 0 end) counts
from 科目表 a left join 姓名錶 b on a.s_name=b.subject
group by a.s_name
執行語句
declare @sql varchar(4000)
set @sql = 'select sum(counts) as 合計'
select @sql = @sql + ',sum(isnull(case [s_name] when '''+[s_name]+''' then [counts] end,0)) as
['+[s_name]+']'
from (select distinct [s_name] from v_subject) as a
select @sql = @sql+' from [v_subject]'
exec (@sql)
結果截圖
你結果裡為什麼會少呢?
這個主要是動態顯示才這麼複雜,比如你在科目表裡再加個阿拉伯語,用這個也沒問題,否則用case when的寫法會比較有侷限性
3樓:2一瞬間
select subject,count(subject) from 姓名錶 group by subject order by id
用sql語句統計資料庫某個欄位中相同的資料有多少條?
4樓:幸運的
1、可通過分組和組內計數來實現,語句如下:
select a, count(*) from a group by a
2、用group by分組:
group by + [分組欄位](可以有多個)。在執行了這個操作以後,資料集將根據分組欄位的值將一個資料集劃分成各個不同的小組。
這裡,分組欄位是a,所以資料集分成了你、我、他三個組。然後用count(*)分別按照各個組來統計各自的記錄數量。
3、count(*)函式:
count(*) 函式返回表中的記錄數。注意它和group by連用,返回組內記錄數。
5樓:匿名使用者
select a,count(*) from 表a group by a
6樓:匿名使用者
select a, count(a) from a
group by a
7樓:大瑞瑞卡哇伊
select b,count(*) from a s join b sf on a.a_id = sf.b_id group by a_id;
如何統計sql中某欄位總數和符合某條件的數量?
8樓:匿名使用者
輸入**
select 名稱
,count(*) as 總數量
,count(case when 型別='a' then 型別 else null end) as 型別為a的數
from 表名
group by 名稱。
就可以統計sql中某欄位總數和符合某條件的數量。
結構化查詢語言(英文簡稱:sql)是一種特殊目的的程式語言,是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關聯式資料庫系統;同時也是資料庫指令碼檔案的副檔名。
結構化查詢語言sql(structured query language)是最重要的 關聯式資料庫操作語言,並且它的影響已經超出 資料庫領域,得到其他領域的重視和採用,如 人工智慧領域的資料檢索,***軟體開發工具中嵌入sql的語言等。
它的語句,像declare cursor,fetch into和update where current用於對一個或多個表單獨行的操作。
sql語句查詢並統計查詢結果數量
可以通過count函式來實現。sqlone select from tablename1 where id 5 此語句查詢出來多條記錄,之後看做一個新的表。sqltwo select conut from select from tablename1 where id 5 as tablename2...
如何用excel篩選後統計數量,excel表格篩選後如何統計行數
1 首先我們需要開啟excel 做一個月份扣款表。2 產品合計的話,輸入 subtotal 9,e2 e14 9為sum,按回車得到結果 3 這時候對月份進行篩選,例如2月份時在單元格區域顯示的統計值這時候對篩選結果的統計,而不是對全部資料的統計。excel必備技巧,快速篩選相同的資料並統計,學會讓...
資料庫查詢,SQL語句 查詢 統計
1全部可以在查詢分析器裡開啟相應資料庫 要輸使用者名稱,密碼 在查詢對話方塊輸入 select from 表名 你所說的某個表的表名 where 欄位 列名 12345 按f5就行了 tablename 你要查詢的資料表的名字 cellname 存放12345資料的列名1.如果是必須含有和12345...