首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按MySQL排序,在联接中按组排序

问按MySQL排序,在联接中按组排序
EN

Stack Overflow用户
提问于 2014-10-08 17:12:06
回答 1查看 97关注 0票数 0

我已经找了一段时间了,找不到一个有用的例子。希望你能发现这个明显的错误!

代码语言:javascript
复制
SELECT
        Timestamp
        , i_currency.Code AS Code
        , Conversion
    FROM
        i_convert(
            SELECT
                Timestamp
                , Conversion
            FROM
                i_convert
            ORDER BY Timestamp DESC
        )
        JOIN i_currency
            ON i_convert.CurrencyID = i_currency.CurrencyID
    GROUP BY Code

我不知道连接应该在哪里,是在括号中,还是在外面,还是两者兼而有之?我试过这三个都没有运气,继续:

代码语言:javascript
复制
You have an error... ...near '( SELECT Timestamp , Conversion FROM i_convert ORDER '
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-08 17:35:53

最初的查询没有意义。它使用GROUP BY,但试图选择既不是分组列,也不是组的聚合函数的列。对于任何给定的结果行,预期的时间戳和转换是什么?

我认为目标是为每种货币选择最新的换算方式。看起来可能更像这样:

代码语言:javascript
复制
SELECT
    latest.Timestamp AS Timestamp
    , i_currency.Code AS Code
    , i_convert.Conversion AS Conversion
FROM i_currency
    JOIN i_convert
        ON i_convert.CurrencyID = i_currency.CurrencyID
    JOIN (
        SELECT MAX(Timestamp) as Timestamp, CurrencyId
        FROM i_convert
        GROUP BY CurrencyId
    ) latest
        ON i_convert.Timestamp = latest.Timestamp
            AND i_convert.CurrencyId = latest.CurrencyId
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26262604

复制
相关文章

相似问题

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