leetcode580. 统计各专业学生人数(SQL)
一所大學有 2 個數(shù)據(jù)表,分別是?student?和?department?,這兩個表保存著每個專業(yè)的學生數(shù)據(jù)和院系數(shù)據(jù)。
寫一個查詢語句,查詢?department?表中每個專業(yè)的學生人數(shù) (即使沒有學生的專業(yè)也需列出)。
將你的查詢結(jié)果按照學生人數(shù)降序排列。 如果有兩個或兩個以上專業(yè)有相同的學生數(shù)目,將這些部門按照部門名字的字典序從小到大排列。
student 表格如下:
| Column Name ?| Type ? ? ?|
|--------------|-----------|
| student_id ? | Integer ? |
| student_name | String ? ?|
| gender ? ? ? | Character |
| dept_id ? ? ?| Integer ? |
其中, student_id 是學生的學號, student_name 是學生的姓名, gender 是學生的性別, dept_id 是學生所屬專業(yè)的專業(yè)編號。
department 表格如下:
| Column Name | Type ? ?|
|-------------|---------|
| dept_id ? ? | Integer |
| dept_name ? | String ?|
dept_id 是專業(yè)編號, dept_name 是專業(yè)名字。
這里是一個示例輸入:
student?表格:
| student_id | student_name | gender | dept_id |
|------------|--------------|--------|---------|
| 1 ? ? ? ? ?| Jack ? ? ? ? | M ? ? ?| 1 ? ? ? |
| 2 ? ? ? ? ?| Jane ? ? ? ? | F ? ? ?| 1 ? ? ? |
| 3 ? ? ? ? ?| Mark ? ? ? ? | M ? ? ?| 2 ? ? ? |
department 表格:
| dept_id | dept_name ? |
|---------|-------------|
| 1 ? ? ? | Engineering |
| 2 ? ? ? | Science ? ? |
| 3 ? ? ? | Law ? ? ? ? |
示例輸出為:
| dept_name ? | student_number |
|-------------|----------------|
| Engineering | 2 ? ? ? ? ? ? ?|
| Science ? ? | 1 ? ? ? ? ? ? ?|
| Law ? ? ? ? | 0 ? ? ? ? ? ? ?|
思路:嵌套查詢出每一個專業(yè)學習人數(shù),然后排序。
select a.dept_name as 'dept_name',(select count(*) from student as b where b.dept_id=a.dept_id) as 'student_number' from department as a order by student_number desc,dept_name;?
總結(jié)
以上是生活随笔為你收集整理的leetcode580. 统计各专业学生人数(SQL)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据安全概念利好哪些股票,数据安全行业十
- 下一篇: 银行卖出价和买入价的区别 汇率不同