SQL語句查詢統計,sql語句統計數量 統計一個欄位出現的數量

2021-05-22 16:58:55 字數 2915 閱讀 7317

1樓:匿名使用者

表要告訴我們呀,不要還要我們設計資料庫吧?

2樓:匿名使用者

給表啊``我想查查這個玩玩``

3樓:匿名使用者

1.select *

from student

2.select id,name,age

from student

我有例題你要嗎

4樓:匿名使用者

靠```這麼多東西幫你寫不曉得要死多少腦細胞```

分還是少了點

5樓:

這點分。。。。。。。。。。。。

sql語句統計數量 統計一個欄位出現的數量

6樓:匿名使用者

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

7樓:匿名使用者

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的寫法會比較有侷限性

8樓:2一瞬間

select subject,count(subject) from 姓名錶 group by subject order by id

sql用語句查詢,SQL用語句查詢null

select from borrowbook where returndate is null 補充 select b.bookid,b.bookname,a.returndate from borrowbook as a,book as bwhere a.bookid b.bookidand a....

Sql語句的TOP用法,sql查詢語句 top n的用法

select top 1 from table select top 1 2 from table 取前3行資料 區別就是 裡面可以是個表示式 沒有區別個人的習慣 在sqlserver2000中top後只可以跟常數,在2005後可以跟變數了 也許唯一的區別就是top expression 括號中可以...

SQL查詢語句

select 姓名,case when 獎金型別 0 then 獎金乘數 比率 else 獎金乘數 比率 基本獎金 end from獎金錶 下一個條件應該是獎金型別不等於0吧?select 姓名,基本獎金,獎金乘數,獎金型別,比率,case 獎金型別 when 0 then 獎金乘數 比率 else...