gpt4 book ai didi

SQLite - 生成包含总计的表,但从 SUM 中排除重复条目

转载 作者:行者123 更新时间:2023-12-03 18:43:27 25 4
gpt4 key购买 nike

我正在使用一个 SQLite 空间数据库,其中包含该县所有地 block 的属性(property)所有权信息。除其他外,它包含地 block 编号 (PARCEL_NO)、面积 (TOTAL_ACRE)、属性(property)值(value) (TOTAL_VALUE) 和所有者 (OWNER) 的字段。每条记录都有一个名为 OBJECT_ID 的主键.

我正在尝试生成该县所有属性(property)所有者的排序(降序)列表,按他们拥有的属性(property)数量(以英亩和美元为单位)排序。

我尝试了两个查询来获取此信息:

SELECT OWNER, SUM(TOTAL_VALUE) FROM thurstonparcelsowners GROUP BY OWNER ORDER BY SUM(TOTAL_VALUE) DESC

SELECT OWNER, SUM(TOTAL_ACRE) FROM thurstonparcelsowners GROUP BY OWNER ORDER BY SUM(TOTAL_ACRE) DESC

问题是一些较大的包裹被分成多个单独的记录,具有不同的OBJECT_ID。但相同PARCEL_NO , TOTAL_ACRE , TOTAL_VALUE等等。例如,在下面的 map 中,所有黄色突出显示的区域实际上是一个大地 block ,带有一个 PARCEL_NO , 但在数据库中被分解为几十个较小的 map 对象(红色选定区域是其中一个与其他黄色要素具有相同 PARCEL_NO 的区域),每个包含相同的属性值(PARCEL_NO = 12806410000, TOTAL_ACRE = 929 , 所有者 = 常青州立大学等):

enter image description here

因此,当我运行上面的查询时,SUM 对这些对象中的每一个进行计数,使这 929 英亩的地 block 登记为 20,000 多英亩(因为它为每条记录计算一次,而不是每个地 block 编号一次。我如何构建这些查询以便每个 PARCEL_NO 的值仅由 SUM 计算一次?

谢谢!

最佳答案

使用子查询删除重复项,将其变成唯一的地 block 、所有者、总英亩数和总值(value)。此子查询将成为您的新表,然后照常运行您的查询。

例如:

SELECT OWNER, SUM(TOTAL_VALUE) 
FROM (
SELECT DISTINCT PARCEL_NO, TOTAL_VALUE, OWNER
FROM thurstonparcelsowners
) t
GROUP BY OWNER
ORDER BY SUM(TOTAL_VALUE) DESC;

您可以对 total_acre 进行类似的查询。

关于SQLite - 生成包含总计的表,但从 SUM 中排除重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49353559/

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