首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对查询中的一列求和

问对查询中的一列求和
EN

Stack Overflow用户
提问于 2017-12-19 15:54:05
回答 2查看 557关注 0票数 1

在我的mysql查询中,我得到了latitude、longitutde和total列。对于lat和long,我做了一些计算工作,这些内容将打印在别名列中。到目前为止,这是可行的。结果应该是这样的:

代码语言:javascript
复制
Lat         long        length  total
-----------------------------------------
49.236000   11.637500   3100    0.401500
49.178900   11.731900   3100    0.553000
49.582100   10.988300   3600    0.593800

现在,我想将length列中的所有值相加,得到一个值total_length

下面是我的sql语句:

代码语言:javascript
复制
SELECT latitude, longitude, length, (ABS( latitude - 49.439810 ) + ABS( longitude - 11.439810 )) as total FROM records ORDER BY total LIMIT 20

甚至有可能只总结一列吗?

我需要的是这样的东西:

代码语言:javascript
复制
Lat         long        length  total
-----------------------------------------
49.236000   11.637500   3100    0.401500
49.178900   11.731900   3100    0.553000
49.582100   10.988300   3600    0.593800
----------------------------------------
                        9800

将会有一个给定值,如20000。如果total_length小于20000,则LIMIT应为相加10,并再次计算total_length。Do经常出现,直到total_length达到20000或更高。

对SQL DB的请求将来自node.js后端。

EN

回答 2

Stack Overflow用户

发布于 2017-12-19 16:03:17

我会将问题一分为二,并用不同的查询计算总和。

代码语言:javascript
复制
SELECT SUM(length) 
FROM records

为了得到你想要的确切结果,你可能需要像这样做一些魔术:

代码语言:javascript
复制
SELECT latitude, longitude, length, (ABS( latitude - 49.439810 ) + ABS( longitude - 11.439810 )) as total 
FROM records ORDER BY total LIMIT 20
UNION
SELECT NULL, NULL, SUM(length), NULL 
FROM records
LIMIT 20

它是有效的,但是拥有一个“量身定制的”行并不是我所说的干净的方法。

票数 1
EN

Stack Overflow用户

发布于 2017-12-19 16:09:58

如果你确实需要一个查询,你可以在这里使用一个汇总技巧:

代码语言:javascript
复制
SELECT
    latitude,
    longitude,
    ABS(latitude - 49.439810) + ABS(longitude - 11.439810) AS total,
    SUM(length)
FROM records
GROUP BY
    latitude,
    longitude,
    ABS(latitude - 49.439810) + ABS(longitude - 11.439810)
WITH ROLLUP 
HAVING
    (longitude IS NOT NULL AND total IS NOT NULL) OR latitude IS NULL;

​

​

​

Demo

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47882292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档