PHP,PDO,MySQL获得计数和条件中位数

时间:2016-10-21 05:31:01

标签: php mysql pdo

我正在尝试解决与MySQL数据库中的数据相关的问题。

我有一张表格,其中包含完成工作的人员的结果。有多个项目,以及执行项目的多个用户。表中的每个条目都包含以下字段:

  • 项目编号
  • 用户ID
  • 状态
  • 持续时间

状态可以是1,2或3

Proj Num   | User ID        | Status | Duration
20001      |sdvdsv3-3ed3dd  |    1   |  8.3
20001      |dfggsv3-3ed54dd |    1   |  8.9
20001      |sdghfgs-3edfgdd |    1   |  11.5
20001      |sdfbvv3-3ed3dd  |    1   |  10.6
20001      |sdsdfv3-3ed3dd  |    1   |  15.2
20001      |dfxxdv3-3gbb4dd |    2   |  1.3
20002      |45gdvv3-3gbb4dd |    1   |  12
20002      |45lu5v3-3ger4dd |    2   |  1.1
20002      |45lu5v3-34r4dd  |    2   |  0.9
20002      |fv333v3-3g543d  |    2   |  0.6

我的最终目标是在我的管理员门户中显示每个人的数量,以及每个人的数量和数量。 project - 必须处于Projects表中设置的打开状态,以及中值持续时间。根据我的知识,中位数让我感到悲伤,没有原生查询。我尝试了很多不同的例子,我开始寻找获取所有数据,把它带回PHP并以某种方式处理它。

理想情况下,我希望使用SQL查询来完成所有操作。

我只是坚持正确的方法来解决这个问题。我很乐意回答任何我错过的细节问题(可能因为我不知道它们与问题/解决方案有关)。

编辑:

伪代码:

(SELECT COUNT(*) FROM project_end end JOIN projects pr ON end.prNum = pr.prNum WHERE end.status = 1 AND pr.status = 'Open') AS totalComplete 

我需要为每个结束状态(1,2或3)多次执行此操作,并按项目编号对计数进行分组。

此外,我需要计算每个项目的中位数持续时间

最终数据作为ajax响应反馈。

我不确定我需要搜索什么才能找到我可以调整以适合我的场景的示例/教程

编辑2:

继@ Strawberry的评论之后,我有一个Projects表,其中包含每个项目的记录,包括项目是打开还是关闭。

当用户完成每个项目的任务时,会将其记录在Project_End表中。

对于我的输出,我只想查看那些仍处于开放状态的项目的信息。

0 个答案:

没有答案