gpt4 book ai didi

python - 使用 SQLite 进行复杂的 SQL 查询

转载 作者:太空宇宙 更新时间:2023-11-03 14:29:53 26 4
gpt4 key购买 nike

我需要做一个复杂的查询,我需要帮助。以下是我所拥有的示例:

id   |   Date   |  Validity

48 | 6-1-2009 | notFound
47 | 6-1-2009 | valid
46 | 6-1-2009 | valid
45 | 3-1-2009 | invalid
44 | 3-1-2009 | invalid
42 | 4-1-2009 | notFound
41 | 4-1-2009 | notFound
48 | 4-1-2009 | valid

[SQL 来了。]

查询结果如下:

   Date   |  valid   |  invalid   |    notFound

3-1-2009 | 0 | 2 | 0
4-1-2009 | 1 | 2 | 2
6-1-2009 | 3 | 2 | 3

我只能在 SQLite 中执行此操作吗?有人能帮我吗?我在 Python 工作。

我需要它来生成折线图。示例为:line chart !

最佳答案

我相信应该这样做:

SELECT Date,
SUM(Validity = "valid") AS valid,
SUM(Validity = "invalid") AS invalid,
SUM(Validity = "notFound") AS notFound
FROM table_name
GROUP BY Date

SUM 函数将计算各种 Validity 类型的总数。 “=”函数在 false 时返回 0,在 true 时返回 1,这就是允许它工作的原因。

** 编辑 **

我刚刚意识到这不是您想要的,因为您正在寻找每个日期的总体聚合,其中还包括前一个日期的数据。这可以在 python 中相当容易地完成。

valid_sum = 0
invalid_sum = 0
notfound_sum = 0
for r in cursor.fetchall():
date = r[0]
valid_sum += int(r[1])
invalid_sum += int(r[2])
notfound_sum += int(r[3])
# print aggregate data for this date

关于python - 使用 SQLite 进行复杂的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13354309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com