Oracle SQL初学者,我需要连接2个表中的几个列,并使用计数来计算总结果

oxf4rvwz  于 2022-11-22  发布在  Oracle
关注(0)|答案(1)|浏览(165)

Oracle SQL : 我 在 这里 列出 了 来自 2 个 表 的 数据 , 这些 是 示例 , 因为 每个 表 都 有 许多 行 。 表 教师 :
| 讲师 ID|称呼|名字|姓氏|街道 地址|邮政 编码|电话 号码|创建 人|创建 日期|修改 者|修改 日期|
| - -| - -| - -| - -| - -| - -| - -| - -| - -| - -| - -|
| 一百 零一|埃|费尔南|汉克斯|东 87 街 100 号|小 行星 100|小 行星 212|艾 西 维斯特|一九九九 年 二 月 一 日|艾 西 维斯特|一九九九 年 二 月 一 日|
| 一百 零二|埃|汤姆|沃 伊 克|西 120 街 518 号|小 行星 10025|小 行星 212|艾 西 维斯特|一九九九 年 二 月 一 日|艾 西 维斯特|一九九九 年 二 月 一 日|
| 一百 零三|女士|尼娜|肖 林|西 101 街 210 号|小 行星 10025|小 行星 212|艾 西 维斯特|一九九九 年 二 月 一 日|艾 西 维斯特|一九九九 年 二 月 一 日|
| 一百 零四|埃|盖里| perl 泰兹|第 六 大道 34 号|小 行星 10035|小 行星 212|艾 西 维斯特|一九九九 年 二 月 一 日|艾 西 维斯特|一九九九 年 二 月 一 日|
另外 , 表格 为 截面 :
| 截面 标识|课程 编号|截面 编号|开始 日期 时间|位置|讲师 ID|容量|创建 人|创建 日期|修改 者|修改 日期|
| - -| - -| - -| - -| - -| - -| - -| - -| - -| - -| - -|
| 七十九|三百 五十|三 个|一九九九 年 四 月 十四 日|五 ○ 九|一百 零七|二十五 个|布 雷恩 南|一九九九 年 二 月 一 日|布 雷恩 南|一九九九 年 二 月 一 日|
| 八十|10 个|2 个|一九九九 年 四 月 二十四 日|二一四|一百 零二|十五|布 雷恩 南|一九九九 年 二 月 一 日|布 雷恩 南|一九九九 年 二 月 一 日|
| 八十一|二十 个|2 个|一九九九 年 七 月 二十四 日|L210 型|一百 零三|十五|布 雷恩 南|一九九九 年 二 月 一 日|布 雷恩 南|一九九九 年 二 月 一 日|
| 八十二|二十 个|四 个|一九九九 年 三 月 五 日|二一四|一百 零四|十五|布 雷恩 南|一九九九 年 二 月 一 日|布 雷恩 南|一九九九 年 二 月 一 日|
我 尝试 从 两 个 表 中 获取 结果 :first _ name , last , name 和 我 需要 按 降 序 得到 每个 教师 教 的 总 节 数 。 我 很 困惑 。 请 轻点 , 我 是 SQL 初学 者 !
到 目前 为止 , 我 已经 在 过去 的 一 个 小时 到 一 个 半 小时 里 尝试 了 几 个 示例 。 显然 , 我 让 这个 问题 变得 比 实际 情况 更 难 了 。 这 是 我 尝试 的 最 后 一 个 语法 :

SELECT I.INSTRUCTOR_ID, 
    I.FIRST_NAME,
    I.LAST_NAME
    COUNT(S.SECTION_NO)
FROM INSTRUCTOR I
JOIN SECTION S 
on I.INSTRUCTOR_ID = S.INSTRUCTOR_ID
ORDER BY NUM_SECTIONS;

中 的 每 一 个

piwo6bdm

piwo6bdm1#

您 发布 的 查询 看 起来 不错 , 但 缺少 一些 内容 :

  • 逗号 ( 在 last_name 之后 )
  • count 函数 的 别名 ( 当 您 尝试 依 它 排序 数据 时 )
  • group by 子句 , 因为 该 子句 中 必须 包含 所有 非 聚集 函数
  • desc ( 正如 您 所说 , 您 希望 按 降 序 对 结果 进行 排序 )

因此 :

SELECT i.instructor_id,
         i.first_name,
         i.last_name,
         COUNT (s.section_no) num_sections
    FROM instructor i JOIN section s ON i.instructor_id = s.instructor_id
GROUP BY i.instructor_id, i.first_name, i.last_name
ORDER BY num_sections DESC;

中 的 每 一 个

相关问题