MySQL数据统计



因此,我们有一个表,它基本上包括了票证的大多数票证详细信息,除了非常长的东西(如笔记、技术笔记、图片等),这些东西在其他表中链接到其他地方,等等。

我们希望在数据表中返回有关各种票证的度量。例如:

SELECT Category, Count(Category) FROM tickets 
WHERE Date_SUB(CURDATE(), Interval 16 Hour) <= Datez GROUP BY Category

这将返回一个结果列表,例如,我们的每个类别及其计数。

然而,如果我们想在不同的时间间隔内调整它,比如返回16 hours1 day30 day3 month12 monthAll time的数字,我们是否必须运行相同的查询#次(比如对于列出的每个查询减去所有时间,运行该查询5次?

最终,我们希望在C#Winforms应用程序中的某种仪表板中使用计数,该仪表板将向我们显示各种票证数据,这样我们就可以了解部门的情况;但是,如果我们必须坐在那里,每隔几分钟运行一次say 5查询,这可能会使系统陷入困境,不是吗?

你可以试试这样的东西:

SELECT
    Category,
    IF(Date_SUB(CURDATE(), Interval 16 Hour) <= Datez, SUM(1), 0) AS c16hours,
    IF(Date_SUB(CURDATE(), Interval 1 day) <= Datez, SUM(1), 0) AS c1day,
    IF(Date_SUB(CURDATE(), Interval 30 days) <= Datez, SUM(1), 0) AS c30days,
    (...)
FROM tickets 
GROUP BY Category

这应该有效(但我还没有测试这个例子,只是给你一些理论)!

祝你好运。

我确信您也可以在WHERE语句之后添加AND语句来继续列表。

这将定义缩短

最新更新