DynamoDB Count Group By

Мы пытаемся найти динамическую базу данных, и нам нужно получить количество объектов в группе, как это можно сделать?

Я пробовал это, но при добавлении второго номера это не работает:

$search = array(
'TableName'     => 'dev_adsite_rating',
'Select'        => 'COUNT',
'KeyConditions' => array(
'ad_id' => array(
'ComparisonOperator' => 'EQ',
'AttributeValueList' => array(
array('N' => 1039722, 'N' => 1480)
)
)
)
);
$response = $client->query($search);

Версия sql будет выглядеть примерно так:

select ad_id, count(*)
from dev_adsite_rating
where ad_id in(1039722, 1480)
group by ad_id;

Так есть ли у нас способ достичь этого? Я не могу найти что-либо на нем.

3

Решение

Попытка выполнить такой запрос в DynamoDB немного сложнее, чем в мире SQL. Чтобы выполнить что-то вроде этого, вам нужно рассмотреть несколько вещей

  1. EQ ONLY Hash Key: Для выполнения запроса такого типа вам необходимо выполнить два запроса (т.е. ad_id EQ 1039722 / ad_id EQ 1480)
  2. Пагинация через запрос: Поскольку DynamodB возвращает ваш набор результатов в приращениях, вам нужно разбивать результаты на страницы. Узнайте больше здесь.
  3. Бег «Граф»: Вы можете взять свойство «Count» из ответа и добавить его к промежуточной сумме, разбивая на страницы результаты обоих запросов. API запросов
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector