说我想在公司的工作时间内制作统计页面。
我想要显示:“最长班次”,“最短班次”,“大部分时间”,“最少时间”
然后,凭借我有限的知识,我必须制作4种不同的dbqueries:
最长班次 - >按Shiftlength DESC命令
最短班次 - >订购Shiftlength ASC
大部分时间 - >按人数分组的总人数DESC
最少时间 - >按人数分组总计ASC
但出于某种原因,我已经明白了这在服务器上有点过分和困难。
我的方式是正确的吗?
答案 0 :(得分:0)
您可以使用MySQL中的MAX()和MIN()运算符
SELECT MAX(shiftlength)
SELECT MIN(shifthours)
Rich:)
答案 1 :(得分:0)
服务器上的小查询不很难。
如果您不使用动态SQL,但使用参数化查询(PDO),MySQL将缓存查询并立即从内存中调用结果。
答案 2 :(得分:0)
The Most&只要您的GROUP BY
语法将所有其他记录组合在一起,您可以将最少时间减少到一个查询。
SELECT
MAX(totalhours) AS MostHours,
MIN(totalhours) AS LeastHours
FROM x
GROUP BY Person
如果你能找到一个好的GROUP BY
语法,你可以对前两个做同样的事。
在您发表评论之后,我会考虑只做一个查询并在PHP中对结果进行排序,这应该非常快,但可能是您的多个查询更快。因此,您必须首先进行基准测试。