यह MySQL में एक जटिल संग्रहीत प्रक्रिया में बनाई गई अस्थायी तालिका पर एक क्वेरी का आउटपुट है:

enter image description here

लक्ष्य अब प्रति दिन औसत अवधि रखना है जैसे हमारे यहां है, लेकिन प्रत्येक सप्ताह के लिए महीने के लिए

इसलिए मैं हर महीने लेना चाहता हूं और इसे प्रति दिन की औसत अवधि के साथ 4 दिनों के सेट में विभाजित करना चाहता हूं।
इसलिए महीने में कितने भी दिन क्यों न हों, मेरे पास उसके लिए 4 मान होंगे।

मैं वह कैसे कर सकता हूं ?

नोट: यदि यह आसान है तो मैं इसे PHP के साथ कर सकता हूं, क्योंकि मैं इस भाषा के साथ डेटा का उपयोग करूंगा।

0
rn605435 28 मई 2018, 12:21

1 उत्तर

सबसे बढ़िया उत्तर

आपके पास एक क्वेरी है जो प्रति दिन समूह बनाती है, उदा.:

select 
  the_date as day,
  sec_to_time(avg(timestampdiff(second, start_time, end_time))) as duration
from ...
group by the_date;

आप इसके बजाय प्रति माह दिन 1-7, 8-14, 15-21, 22-अंत चाहते हैं। समूह बनाने के लिए CASE WHEN का प्रयोग करें।

select 
  year(the_date) as year,
  month(the_date) as month,
  case 
    when day(the_date) <=  7 then '01-07'
    when day(the_date) <= 14 then '08-14'
    when day(the_date) <= 21 then '15-21'
    else                          '22-end'
  end as day_range,
  sec_to_time(avg(timestampdiff(second, start_time, end_time))) as duration
from ...
group by year, month, day_range
order by year, month, day_range;
2
Thorsten Kettner 28 मई 2018, 13:04