{eval=Array;=+count(Array);}
既然兩個(gè)表的結(jié)構(gòu)一模一樣,如果想統(tǒng)計(jì)人名出現(xiàn)的總數(shù),可以將兩個(gè)表先用union all合并到一起,然后再對(duì)其進(jìn)行統(tǒng)計(jì)。
例如,有下面兩個(gè)表:成績(jī)表A、成績(jī)表B,這兩個(gè)表的結(jié)構(gòu)是完全一樣的,分別都有20條記錄,但兩個(gè)表有部分記錄是重復(fù)的:
如果將兩個(gè)表合并到一起,可以使用union all。注意,這里必須加上all,否則,那些重復(fù)的記錄就會(huì)被排除掉了,從而導(dǎo)致出現(xiàn)的總數(shù)不準(zhǔn)確。例如,下面的語句沒有加all,輸出的姓名記錄數(shù)只有25個(gè),有另外15個(gè)重復(fù)的被排除掉了:
所以,一定要加上all。這樣得到兩個(gè)表的合集后,再用括號(hào)將其包起來,把它作為一個(gè)表來處理,再次統(tǒng)計(jì)即可。sql語句如下:
select 姓名,count(*) as 出現(xiàn)次數(shù) from (select 姓名 from 成績(jī)表A union all select 姓名 from 成績(jī)表B) group by 姓名
統(tǒng)計(jì)結(jié)果如下圖:
我是人民郵電出版社簽約作者,著有多本與B/S、C/S開發(fā)方面的專業(yè)書籍,歡迎關(guān)注并一起交流提高,謝謝!
SQL多表查詢,一般都是用連接進(jìn)行表之間的連接,那樣會(huì)把所有表統(tǒng)一行程一張大表或者視圖進(jìn)行查詢,那樣方便你的查詢;
查詢之后,根據(jù)你的需求進(jìn)行order by或者group by統(tǒng)計(jì)你想要的數(shù)據(jù);
如有不明白的地方,可以關(guān)注我并且私聊我!
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答