我正在使用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完成这项工作?我尝试了使用注释的不同方法,但现在运气到目前为止.
非常感谢!
我在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
函数?
假设 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)结合子查询进行各种查询,但无法达到所需的结果。