Php MySQL从按项目分组的表中选择一个用户列表,按小时数降序列出

Php MySQL从按项目分组的表中选择一个用户列表,按小时数降序列出,php,mysql,select,max,Php,Mysql,Select,Max,我有这样的时间表: CREATE TABLE time (`id` int, `hours` float(1), `project` varchar(55), `user` varchar(45)); INSERT INTO time (`id`, `hours`, `project`, `user`) VALUES (1, '3.5', 'Project A', 'Bob'), (2, '1', 'Project A', 'Anne'), (3, '2

我有这样的时间表:

CREATE TABLE time
    (`id` int, `hours` float(1), `project` varchar(55), `user` varchar(45));

INSERT INTO time
    (`id`, `hours`, `project`, `user`)
VALUES
    (1, '3.5', 'Project A', 'Bob'),
    (2, '1', 'Project A', 'Anne'),
    (3, '2', 'Project B', 'Anne'),
    (4, '6', 'Project B', 'Anne'),
    (5, '2', 'Project C', 'Joe'),
    (6, '9', 'Project C', 'Joe'),
    (7, '1', 'Project C', 'Sam'),
    (8, '22', 'Project A', 'Bob');
我想返回这样一张表:

CREATE TABLE time
    (`id` int, `hours` float(1), `project` varchar(55), `user` varchar(45));

INSERT INTO time
    (`id`, `hours`, `project`, `user`)
VALUES
    (1, '3.5', 'Project A', 'Bob'),
    (2, '1', 'Project A', 'Anne'),
    (3, '2', 'Project B', 'Anne'),
    (4, '6', 'Project B', 'Anne'),
    (5, '2', 'Project C', 'Joe'),
    (6, '9', 'Project C', 'Joe'),
    (7, '1', 'Project C', 'Sam'),
    (8, '22', 'Project A', 'Bob');
th{背景色:999999} td{宽度:200px} 项目 用户1最多小时 用户2第二最多小时 等 项目A 上下快速移动 安妮 项目B 安妮 无效的 项目C 乔 山姆 请尝试以下查询:

SELECT project, user
FROM time
GROUP BY project, user
ORDER BY SUM(hours) DESC
这将根据您问题中的示例数据得出以下结果集:

--------------------
|  project  | user |
--------------------
| Project A | Bob  |
| Project A | Anne |
| Project B | Anne |
| Project C | Joe  |
| Project C | Sam  |
--------------------

请注意,未列出每个项目中每个用户的总工作时间,因为您没有要求。

谢谢,这非常接近我的需要。有没有办法每行只显示一个项目,并在列中添加其他用户?甚至将每个结果限制为仅显示每个项目的最大用户数。