【问题标题】:SQL select / groupSQL 选择/组
【发布时间】:2010-07-07 23:14:16
【问题描述】:

我是学生,这是作业。我越来越累和困惑。任何建议将不胜感激。

我有两张桌子。

员工有以下列:

  • 姓氏
  • 名字
  • 地址
  • 电话
  • Job_title(FK)
  • 工资

职位名称

  • job_title(PK)
  • EEO 分类
  • 职位描述
  • Exempt_Non_Exempt

我需要选择员工的姓氏,并在分为豁免和非豁免的职位中按薪水对他们进行分组。

我正在使用 sql server 来检查我的工作,但它需要手动编写。

【问题讨论】:

  • 您的问题措辞正确吗?您可能希望某种聚合作用于未分组的列。例如,获取最高或平均工资并按职位分组。

标签: sql sql-server


【解决方案1】:

你能提供样本数据吗?因为我不清楚 JOB_TITLE.exempt_non_exempt 的数据类型是什么,或者指定的分组标准要完成什么 - EMPLOYEE.last_name 将大部分是唯一的(但由于史密斯先生原则,不能保证),所以听起来需要使用聚合函数。

根据我读到的内容,这看起来就是您所追求的:

  SELECT e.last_name, e.wage, jt.exempt_non_exempt
    FROM EMPLOYEE e
    JOIN JOB_TITLE jt ON jt.job_title = e.job_title
GROUP BY e.last_name, e.wage, jt.exempt_non_exempt

您加入外键/主键以从两个表中获取有效数据。

GROUP BY 子句是您定义分组的地方,但 SQL 标准是,如果您在 SELECT 子句中指定列而不用聚合函数包装(即:COUNT/MAX/MIN/etc),那么这些列需要在 GROUP BY 中指定。

【讨论】:

  • 这正是我所需要的谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-30
  • 2016-12-13
  • 2018-10-18
  • 2019-07-24
相关资源
最近更新 更多