我遇到了一个小登录,无法破解。任何帮助将不胜感激。
我有一个数据库如下。
username startdate enddate timedifference
user1 12-07-2017 13-07-2017 24
user2 12-06-2017 13-06-2017 24
user1 11-05-2016 12-05-2016 24
user2 13-03-2016 15-03-2016 48
user3 9-02-2015 10-02-2015 24
user1 11-09-2017 12-09-2017 24
user1 10-08-2017 11-08-2017 24
自 2017 年 3 个月以来 user1 2017 年的预期产出 = ((24+24+24)/(3*24*30))*100 = 3.33%
现在我想找到
value = (totaltimedifference)/(number of months data in database * 24*30) *100
基本上我想找到百分比。
到目前为止我的代码是
$percentageutilizationtesting = graphdata::select(DB::raw("
(SUM(month(start))*(count(month(start)* 24*30)*100) as month, SUM(difference) as data, userid as username, year(start) as year"))
->groupBy(DB::raw("month(start)"))
->groupBy(DB::raw("year(start)"))
->groupBy('userid')
->get()
->toArray();
我尝试了 count(month(start)) 但它正在计算该月的条目总数,而我只想乘以该年的月数。
我无法找到月数,并且我不知道要执行的正确查询,或者如果在 Laravel 中不可能,请帮助我使用 JavaScript 代码。
非常感谢您的帮助。
最佳答案
我不知道 Laravel 语法,但 MySQL 查询应该是:
SELECT username, YEAR(startdate) AS year, SUM(timedifference)/(COUNT(DISTINCT(MONTH(startdate)))*24*30)*100 AS average
FROM graphdata
GROUP BY username, year
COUNT(DISTINCT(MONTH(startdate)))
计算用户一年中不同月份的数量。
关于javascript - sql 查询或 javascript 代码来计算数据库中的月数并将其乘以 laravel 中的总值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51366707/