SQL第一行结果相反
Posted
技术标签:
【中文标题】SQL第一行结果相反【英文标题】:SQL First row result in reverse 【发布时间】:2019-03-13 09:32:42 【问题描述】:SELECT item_description, item_variant, branch, GROUP_CONCAT(sum ORDER BY 'date') AS chartData
FROM (
SELECT item_description, item_variant, branch, SUM(sales) AS sum
FROM inventory_branches
WHERE (item_description = 'agapanthus') AND (date BETWEEN '2018-06' AND '2018-08')
GROUP BY item_description, item_variant, branch, MONTH(date) DESC
) T
GROUP BY item_description, item_variant, branch, MONTH('date')
LIMIT 5
上面的代码正确返回除了第一行之外的所有行。 chartData
中的第一组数据是反的
In the first row, the 20 should be after the 58
提前谢谢你!
【问题讨论】:
你的意思是GROUP_CONCAT(sum ORDER BY 'date' DESC) AS chartData
?
见:Why should I provide an MCVE for what seems to me to be a very simple SQL query?
@Zack 不管我在代码中怎么加 DESC 或 ASC,chartData
第一行的结果是相反的
【参考方案1】:
我假设您的表中有一个名为 date
的列。要按它排序,请使用ORDER BY date
而不是ORDER BY 'date'
,即不要将列名括在单引号中。 'date'
只是一个字符串文字,按它排序就像根本不排序,因为它对所有行都是相等的。
【讨论】:
我不知道为什么,但是当我去掉单引号时,我得到一个错误,说它是字段列表中的一个未知列。 @lekendary:将其包含在您的内部查询的列列表中。 它有效!我没有意识到这就是它所需要的。谢谢!以上是关于SQL第一行结果相反的主要内容,如果未能解决你的问题,请参考以下文章