Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在(SQL)中解决此查询?_Sql - Fatal编程技术网

如何在(SQL)中解决此查询?

如何在(SQL)中解决此查询?,sql,Sql,我有这样的表,其中包含id、名称、Uid,如下所示: -------------- Id Name Uid | 1 Ram 0 | 2 Sham 1 | 3 Cam 1 | 4 Dam 2 | 5 Eam 3 | 6 Fam 4 | 7 Gam 2 ---------------- 这类似于: Ram | ----

我有这样的表,其中包含id、名称、Uid,如下所示:

--------------
Id  Name   Uid  |
1   Ram     0   |
2   Sham    1   |
3   Cam     1   |
4   Dam     2   | 
5   Eam     3   | 
6   Fam     4   |
7   Gam     2
----------------
这类似于:

            Ram
             |
       --------------
       |            |
      Sham         Cam 
       |            |
    ---------       ---
    |       |       |
   Dam     Gam      Eam
我想知道有多少工人在特定人员下工作,例如(在Ram下有2人在工作)

就像Ram的id=1一样,我们将签入Uid,所有Uid=1的用户都将在Ram下工作

输出:

------------------------------------------------
Id  Name   Count(Number of Employee Working)   |
1   Ram       2                                |
2   Sham      2                                |
3   Cam       1                                |
4   Dam       0                                | 
5   Eam       0                                | 
6   Fam       0                                |
7   Gam       0                                |
------------------------------------------------

由于您似乎只想知道不深入遍历子树的直接子级的数量,您可以尝试:

SELECT t1.id,
       t1.name,
       (SELECT count(*)
               FROM elbat t2
               WHERE t2.uid = t1.id) count
       FROM elbat t1;

请告诉我们您使用的是哪种DBMS。谢谢。我可以用另一种方法,比如CTE(公共表表达式)吗