首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL:从不同单元格减去的复杂查询

SQL:从不同单元格减去的复杂查询
EN

Stack Overflow用户
提问于 2015-06-18 18:33:05
回答 1查看 71关注 0票数 0

我有两个表,我想组合它们的数据。

第一个表

代码语言:javascript
复制
+------------+-----+------+-------+
| BusinessID | Lat | Long | Stars |
+------------+-----+------+-------+
| abc123     |  32 |   74 | 4.5   |
| abd123     |  32 |   75 | 4     |
| abe123     |  33 |   76 | 3     |
+------------+-----+------+-------+

第二个表是:

代码语言:javascript
复制
+------------+-----+------+-------+
| BusinessID | day | time | count |
+------------+-----+------+-------+
| abc123     |   1 |   14 |     5 |
| abc123     |   1 |   15 |     6 |
| abc123     |   2 |   13 |     1 |
| abd123     |   4 |   12 |     4 |
| abd123     |   4 |   13 |     8 |
| abd123     |   5 |   11 |     2 |
+------------+-----+------+-------+

所以我想要做的是找到在特定半径内的所有企业,并且在下一个小时内比当前时间有更多的签到。

所以结果是

代码语言:javascript
复制
+------------+
| BusinessID |
+------------+
| abd123     |
| abc123     |
+------------+

因为他们在接下来的一个小时内比前一个小时有更多的签到(6 > 5,8> 4)

更重要的是,如果结果按照它们在签到数量上的不同进行排序,这将是有帮助的。例如。(8-4>6-5)

代码语言:javascript
复制
SELECT *
FROM table2 t2
WHERE t2.BusinessID IN (
    SELECT t1.BusinessID 
    FROM table1 t1
    WHERE earth_box(ll_to_earth(32, 74), 4000/1.609) @> ll_to_earth(Lat, Long)
    ORDER by earth_distance(ll_to_earth(32, 74), ll_to_earth(Lat, Long)), stars DESC
    ) AND checkin_day = 1 AND checkin_time = 14;

从上面的查询中,我可以找到radius中的企业,然后找到它们在指定时间内的签到。例如。14.我现在要做的是找出(相同业务的) 15小时内的签到次数,看看签到次数是否比以前多了。

EN

回答 1

Stack Overflow用户

发布于 2015-06-18 19:13:45

我认为你想要这样的东西:

代码语言:javascript
复制
SELECT
    t1.BusinessID
FROM
    table1 t1
    JOIN
    (SELECT
        *,
        "count" - LAG("count") OVER (PARTITION BY BusinessID, "day" ORDER BY "time") "grow"
    FROM 
        table2
    WHERE
        /* Some condition on table2 */) t2
    ON t1.BusinessID = t2.BusinessID AND t2.grow > 0
WHERE
        /* Some condition on table1 */
ORDER BY
    t2.grow DESC;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30912948

复制
相关文章

相似问题

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