2016-10-03 4 views
0

Как я могу изменить этот запрос к динамо дб запроса, я не могу найти примеры на агрегатных функций, а также дату операции в динамо дб ..как написать этот сложный MySQL запрос в динамовцев дб

SELECT DATE(`date`) AS day ,SUM(`power`) AS power 
    FROM `ogm` 
    WHERE `id`!=0 
    AND DATE(`date`)>=DATE(NOW()) - INTERVAL 31 DAY GROUP BY day; 
+0

DynamoDB! = MySql, это другая структура, и вы не можете писать запросы на MySql там – Justinas

+0

Но как можно получить аналогичный вывод, который я получаю из таблиц mysql , – user3445588

ответ

0

Использовать клиент DynamoDB и операцию scan для выполнения сложного запроса.

Что-то вроде этого не испытанной:

$client->scan([ 
    'TableName' => 'omg', 
    'ScanFilter' => [ 
     'id' => [ 
      'AttributeValueList' => [ 
       'S' => '0', 
      ], 
      'ComparisonOperator' => 'NE', 
     ], 
     'date' => [ 
      'AttributeValueList' => [ 
       'S' => date('Y-m-d', strtotime('-31 days')), 
      ], 
      'ComparisonOperator' => 'GE', 
     ], 
    ], 
    'ConditionalOperator' => 'AND' 
]); 

ComparisonOperator список значений.

Имейте в виду, что этот запрос вернет только до 1 мб данных, вы должны его повторно зациклировать. И даже не думайте о разбивке на страницы: D

+0

Его выдача ..... Исключено: не найдено 2 ошибки при проверке ввода, предоставленного для операции сканирования: [ScanFilter] [id] [AttributeValueList] [S] должен быть ассоциативным массивом. Найденная строка (1) «0» [ScanFilter] [дата] [AttributeValueList] [S] должна быть ассоциативным массивом. Найдено строка (10) «2016-09-04» Невозможно обработать эту ошибку. – user3445588

+0

, пожалуйста, дайте проверенный код спасибо ..... – user3445588

Смежные вопросы