У меня есть запрос, который я запускаю несколько раз за каждый день в диапазоне. Я хотел бы уменьшить это один запрос:MYSQL Group By Interval Of Days Sum Каждый день
SELECT SUM(amount) AS all_time_revenue
FROM charges WHERE DATE(`charges`.`created_at`) <= '2015-03-01'
Я бегу в проблему, пытается преобразовать это в одном запросе - я не могу GROUP BY
«created_at», потому что я захватывая все обвинения до того и на дату. (Не только в эту дату). Не уверен, что это возможно, но я уверен, что здесь есть гений, который может его решить. Примечание: Было бы неплохо, если бы я смог вернуть myDate, а также сумму сумма для каждой строки.
Вот полный пример того, что я делаю:
$start_time = new DateTime('2016-08-01');
$end_time = new DateTime('2016-08-14');
$data = [];
for ($start_time; $start_time < $end_time; $start_time = $start_time->modify('+1 day')) {
$date = $start_time->format("Y-m-d");
$results = DB::SELECT("SELECT SUM(amount) AS all_time_revenue
FROM charges
WHERE `charges`.`created_at` <= ? AND `charges`.`sandbox`=0",
", [$date]);
$data[$date] = $results[0]->all_time_revenue;
}
Так в идеале я хотел бы запустить один запрос, который может работать с диапазоном дат или одну датой и количеством дней интервала и иметь его выплюнуть строки, как:
row 1: ['2016-08-01', 4000.00]
row 2: ['2016-08-02', 4500.00]
...
row 14:['2016-08-14', 15000.00]
См. Http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql- query – Strawberry
Не все понятно, что такое тип данных 'created_at' ... это DATE? DATETIME? И какой диапазон значений предоставляется для $ mydate? – spencer7593
Спасибо, потому что я понятия не имел, о чем жаловалась @Strawberry. –