我想在Django創建以下查詢創建的Django pgSQL的查詢有了COUNT,GROUP BY,間隔和LIMIT
SELECT content_reference , COUNT(reference)
AS total
FROM usage_statistics
WHERE content_type = 'blog'
AND access_date > NOW() - INTERVAL '90' DAY
GROUP BY content_reference
ORDER BY total DESC
LIMIT 10
我已經想通了,到目前爲止是:
result = UsageStatistics.objects.values('content_reference')\
.annotate(total=Count('reference'))\
.order_by('total')
這使得查詢
SELECT "usage_statistics"."content_reference", COUNT("usage_statistics"."reference") AS "total"
FROM "usage_statistics"
GROUP BY "usage_statistics"."content_reference"
ORDER BY "total" ASC
LIMIT 21
我不確定如何正確包括:
- AND ACCESS_DATE> NOW() - INTERVAL '90' DAY
- ORDER BY總DESC
以下是我usage_statistics使用表結構
CREATE TABLE usage_statistics
(
reference bigint
access_date timestamp with time zone,
ip_address inet NOT NULL,
language_iso text NOT NULL,
content_type character varying(12) NOT NULL,
content_reference text NOT NULL,
passport_user_id bigint
)
對於像這樣的查詢,不需要下拉到raw sql:這意味着您不能再對結果執行進一步的查詢集級操作。 –