在数据库中有很多日期,但我想获取特定城市的昨天和今天的最大值。 我尝试下面的代码,但我为每个城市提供相同的价值:
我想要的是,如果有多个城市,并且他们有自己的价值,那么如何为每个特定城市获得最大价值。
假设,昨天创建了前两个值,今天创建了休息。
设A,B,C,D为城市,A的值为45,62,98,62,37& B的值为85,26,33,44,55& C的值为74,56,20,35,96& D的值为45,52,69,85,77,它们的创建日期不同,有些A值是昨天创建的,有些A值是今天创建的。类似地,对于B,C,D。
现在,从我想要的数据: 昨天创建的A,B,C,D 的最大值 。(即A = 62,B = 85,C = 74,D = 52)&
今天创建的A,B,C,D 的最大值 。(即A = 98,B = 55,C = 96,D = 85)。 以下是我尝试过的代码:
class VentaToday(ListView):
template_name = 'venta/venta_today.html'
def get_queryset(self):
return Venta.objects.filter(fecha=datetime.now(pytz.timezone('America/Lima'))).order_by('-id')
答案 0 :(得分:0)
要做你想做的事,你需要使用group by。 在您的选择查询中,您需要按城市和日期进行分组 那么在你的where子句中你需要提供只保留的条件 昨天和今天的日期。
SELECT
city,
result_date,
max(value)
FROM
your_table
WHERE
result_date > current_date - 1
group by city, result_date
order by city
此查询的结果将是这样的:
city_001 today 15
city_001 yesterday 15
city_002 today 20
city_002 yesterday 22
city_003 today 18
city_003 yesterday 20
没有什么是你的日期类型不告诉我是datetime因为这不起作用 当你阅读这条消息时,你需要额外的工作告诉我