お世話になっております。
djangoでクエリセットを記載していたのですが期待した動作がされません。
ご教示いただければと思います。
以下のテーブル/レコードが存在します。
table_A
key | date | result |
---|---|---|
1 | 2020-03-29 21:18:00 | 100 |
2 | 2020-03-29 21:19:00 | 100 |
3 | 2020-03-29 21:20:00 | 100 |
1 | 2020-03-29 21:21:00 | 110 |
2 | 2020-03-29 21:22:00 | 100 |
1 | 2020-03-29 21:23:00 | 120 |
1 | 2020-03-29 21:24:00 | 100 |
〜 | 以下時間が違うレコード | 〜 |
この時に以下の様な結果を得たいと思っています。
1.keyが"1"の物のみを抽出する。
2.dateでOrder_byで最新のレコードを10取り出す。
3.resultをcountでそれぞれが何個あるか取り出したい。
以下はSQLで表現した場合です。
SQL
1select result, count(result) 2 from ( 3 select result from table_A 4 where key = 1 limit 10) as q1 5; 6 7結果 8100 6 9110 3 10120 1
これをdjangoのクエリで以下の様に記載しました。
Python
1views.py 2 all = table_A.objects.all().filter(key=1).order_by('-date')[:10] 3 count = all.values('result').annotate(total=Count('result')) 4params = { 5 'data': count, 6} 7
html
1index.html 2 {% for i in data %} 3 {{i.result}} 4 {{i.total}} 5 {% endfor %}
ですが、この結果がkey=1の物のみ取得はできているようですが、
100 1
100 1
110 1
120 1
〜〜〜
という風に集計されず、期待した表示がされません。
お手数おかけしますが、御助力お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/19 11:34
2020/04/19 11:57
2020/04/19 11:59