【问题标题】:Select people working below a person选择在一个人下面工作的人
【发布时间】:2015-12-17 10:59:21
【问题描述】:

我有一张名为“员工”的桌子,其中人们有一个 ID 和他/她的厨师的号码。现在我需要选择在他们下面工作的人的姓名。

我的桌子是这样的:

| id  | chef |
|-----|------|
|7.839|(NULL)|
|7.566| 7.839|
|7.698| 7.839|
|7.499| 7.698|
|7.521| 7.698|
|7.654| 7.698|

我的结果应该是这样的:

|id     | employees |
|-------|-----------|
|7.839  | 2 |
|7.698  | 3 |

我在想这样的事情:

SELECT e.id, COUNT(e.chef) AS employees FROM employees e GROUP BY e.chef

但这会选择在他们之上工作的人。

谢谢。

【问题讨论】:

    标签: mysql sql sql-server join


    【解决方案1】:

    使用IS NOT NULL

    SELECT e.chef, COUNT(e.chef) AS employees 
    FROM employees e where e.chef IS NOT NULL
    GROUP BY e.chef
    

    【讨论】:

    • 需要指出的1个错误,GROUP BY子句应该在WHERE子句之后..否则会导致错误
    【解决方案2】:
    SELECT chef as id, COUNT(chef) AS employees FROM employees 
    WHERE chef IS NOT NULL
    GROUP BY chef
    

    【讨论】:

      【解决方案3】:

      试试这个

      select count(id) as employee,Chef as ID from employee
      where chef is not null group by chef 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-05
        • 1970-01-01
        • 2012-05-02
        • 1970-01-01
        • 2021-09-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多