У меня есть данные базы данных, например:
date, storage, bandwidth, cost
Я могу иметь такие записи, как:
2013-10-24, 1, 0, 0.55;
2013-10-25, 1, 0, 0.50;
2013-10-25, 1, 0, 0.25;
2013-10-25, 0, 1, 0.50;
Я беру данные из базы данных и делаю foreach. У меня получится конечно 4 ряда. Мне нужно будет сгруппировать данные следующим образом:
Это означает, что 24 октября 2013 г. у меня была стоимость хранения 0,55.
А 25 октября 2013 г. у меня была стоимость хранения. 0,75 и стоимость полосы пропускания 0,50.
Я создал функцию:
публичная функция sortCostByDay($array, $key)
{
$return = array();
foreach($array as $v)
{
$storage = $bandwidth = $total = 0;
if($v['storage'] == 1)
{
$storage += $v['cost'];
$total += $storage; if($v['bandwidth'] == 1)
{
$bandwidth += $v['cost'];
$total += $bandwidth;
$return[$v[$key]][] = array('storage' => $storage, 'bandwidth' => $bandwidth, 'total' => $total);
}
return $return;
Это сгруппирует мой первоначальный массив по $ключ. Ключ $ — это дата.
В итоге у меня получается следующее:
'2013-10-24' =>
array (size=1)
0 =>
array (size=3)
'storage' => 0.55
'bandwidth' => 0
'total' => 0.55
'2013-10-25' =>
array (size=3)
0 =>
array (size=3)
'storage' => 0.50
'bandwidth' => 0
'total' => 0.50
1 =>
array (size=3)
'storage' => 0.25
'bandwidth' => 0
'total' => 0.50
2 =>
array (size=3)
'storage' => 0
'bandwidth' => 0.50
'total' => 1
Не могу понять, как сделать что-то вроде:
'2013-10-24' =>
array (size=1)
0 =>
array (size=1)
'storage' => 0.55
'bandwidth' => 0
'total' => 0.55
'2013-10-25' =>
array (size=1)
0 =>
array (size=3)
'storage' => 0.75
'bandwidth' => 0.50
'total' => 1.25
Подробнее здесь: https://stackoverflow.com/questions/193 ... er-columns
Группируйте данные таблицы базы данных по дате и суммируйте другие столбцы. ⇐ Php
Кемеровские программисты php общаются здесь
1729711851
Anonymous
У меня есть данные базы данных, например:
date, storage, bandwidth, cost
Я могу иметь такие записи, как:
2013-10-24, 1, 0, 0.55;
2013-10-25, 1, 0, 0.50;
2013-10-25, 1, 0, 0.25;
2013-10-25, 0, 1, 0.50;
Я беру данные из базы данных и делаю foreach. У меня получится конечно 4 ряда. Мне нужно будет сгруппировать данные следующим образом:
Это означает, что 24 октября 2013 г. у меня была стоимость хранения 0,55.
А 25 октября 2013 г. у меня была стоимость хранения. 0,75 и стоимость полосы пропускания 0,50.
Я создал функцию:
публичная функция sortCostByDay($array, $key)
{
$return = array();
foreach($array as $v)
{
$storage = $bandwidth = $total = 0;
if($v['storage'] == 1)
{
$storage += $v['cost'];
$total += $storage; if($v['bandwidth'] == 1)
{
$bandwidth += $v['cost'];
$total += $bandwidth;
$return[$v[$key]][] = array('storage' => $storage, 'bandwidth' => $bandwidth, 'total' => $total);
}
return $return;
Это сгруппирует мой первоначальный массив по $ключ. Ключ $ — это дата.
В итоге у меня получается следующее:
'2013-10-24' =>
array (size=1)
0 =>
array (size=3)
'storage' => 0.55
'bandwidth' => 0
'total' => 0.55
'2013-10-25' =>
array (size=3)
0 =>
array (size=3)
'storage' => 0.50
'bandwidth' => 0
'total' => 0.50
1 =>
array (size=3)
'storage' => 0.25
'bandwidth' => 0
'total' => 0.50
2 =>
array (size=3)
'storage' => 0
'bandwidth' => 0.50
'total' => 1
Не могу понять, как сделать что-то вроде:
'2013-10-24' =>
array (size=1)
0 =>
array (size=1)
'storage' => 0.55
'bandwidth' => 0
'total' => 0.55
'2013-10-25' =>
array (size=1)
0 =>
array (size=3)
'storage' => 0.75
'bandwidth' => 0.50
'total' => 1.25
Подробнее здесь: [url]https://stackoverflow.com/questions/19332920/group-database-table-data-by-date-and-sum-other-columns[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия