TL; DR
Как смоделировать данные в поля по сравнению с тегами, если вы хотите выполнить как группирование, так и подсчет (отличный ())
Так что в настоящее время это мой приёммодель данных:
api_requests (database)
- requests_stats (measurement)
- api_path (tag)
- app_version (tag)
- host (tag)
- platform (tag)
- account_id (field)
- user_id (field)
- function_name (field)
- network (field)
- network_type (field)
- time_to_execute (field)
Итак, теперь я хочу узнать количество отдельных учетных записей (активных учетных записей).Таким образом, я могу выполнить следующий запрос:
SELECT count(distinct("account_id")) AS "active_accounts"
FROM "api_requests"."autogen"."requests_stats"
Это прекрасно работает, так как идентификатор учетной записи является полем.
Теперь предположим, что я хочу выполнить группирование по операции с account_id, например, чтобы найтиколичество запросов, полученных на один аккаунт:
SELECT count("function_name") AS "request_count"
FROM "api_requests"."autogen"."requests_stats"
GROUP BY "account_id"
Я не могу сделать это, поскольку для тегов рекомендуется группировать по.
Как можно управлять этим видом сценария?
Одним из решений является сохранение значения как в поле, так и в значении, но это будет избыточность данных.
Другим и наиболее оптимальным способом будет использование count (Different ()) для работы с тегами.Это возможно?На самом деле это был запрос функции в их репозитории github.
Или можно что-то сделать с моделью данных, чтобы добиться того же?