小编Tha*_*ris的帖子

Django ORM查询GROUP BY由MAX组合的多个列

我正在使用Django和MySQL.我有一个类似于以下的模型:

class MM(models.Model):
    a = models.IntegerField()
    b = models.IntegerField()
    c = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

我有多行a等于b,我想执行以下SQL查询:

SELECT a, b, MAX(c) AS max FROM MM GROUP BY b, a;
Run Code Online (Sandbox Code Playgroud)

如何用Django ORM完成这项工作?我尝试了使用注释的不同方法,但现在运气到目前为止.

非常感谢!

python mysql orm django-models

11
推荐指数
1
解决办法
5894
查看次数

如何在webapp2中JSON格式化HTTP错误响应

我在App Engine中使用webapp2进行开发.我想要做的是发送错误时自定义JSON格式的响应.例如,当请求长度大于阈值时,用HTTP 400和响应体响应

{'error':'InvalidMessageLength'}
Run Code Online (Sandbox Code Playgroud)

在webapp2中,可以选择为某些异常分配错误处理程序.例如:

app.error_handlers[400] = handle_error_400
Run Code Online (Sandbox Code Playgroud)

handle_error_400如下:

def handle_error_400(request, response, exception):
    response.write(exception)
    response.set_status(400)
Run Code Online (Sandbox Code Playgroud)

webapp2.RequestHandler.abort(400)被执行时,上述代码被执行.

如何根据上述设置动态地使用不同的响应格式(HTML和JSON)?也就是说,如何调用不同版本的handle_error_400函数?

error-handling google-app-engine json webapp2

4
推荐指数
1
解决办法
1804
查看次数

BigQuery:仅当字段具有特定值时才获取表中的最新行

假设 BigQuery 中有一个包含以下数据的表:

ColA | ColB | ColC | ColD
  x  |   y  |  1   |   5
  x  |   y  |  0   |   6
  k  |   z  |  1   |   4
Run Code Online (Sandbox Code Playgroud)

ColA、ColB 是字符串,ColC 是整数,ColD 是时间戳。

仅当ColC 等于 1 时,我才需要获取LAST(ColD)ColA 的每个唯一值的最新行 ( )。也就是说,在上表中,查询结果应为:

ColA | ColB | ColC | ColD
  k  |   z  |  1   |   4
Run Code Online (Sandbox Code Playgroud)

第 1 行和第 2 行不应包含在结果中,因为ColA=x表中的最后一个条目(第 2 行)具有ColC=0

我尝试过使用聚合函数(例如 MAX、LAST)结合子查询进行各种查询,但无法达到所需的结果。

google-bigquery

2
推荐指数
1
解决办法
4367
查看次数