SQL计算查询
Posted
技术标签:
【中文标题】SQL计算查询【英文标题】:SQL Calculation Query 【发布时间】:2017-02-18 07:31:14 【问题描述】:SELECT
(SELECT sum(cost) from cost_table) AS "amount_paid"
FROM member_management;
我需要子查询计算出来的值,用于 下一列进行进一步计算。示例如下:
SELECT
(SELECT sum(cost) from cost_table) AS "amount_paid",
amount_paid/5 AS "share price"
FROM member_management;
【问题讨论】:
我想你可以解决这个问题 一个建议,请使用“SQL 计算查询”之类的标题来提示您需要帮助的主题,并将问题与代码一起作为问题文本的一部分写入 会记住这一点,我是新手,谢谢顺便说一句 【参考方案1】:您不能在定义它的同一 select
子句中重用别名。解决这个问题的一种方法是进行计算
SELECT m.*, amount_paid, share_price
FROM member_management m
cross join
(
SELECT sum(cost) as amount_paid, sum(cost) / 5 as share_price
from cost_table
) tmp
【讨论】:
这是实际的查询。星星之间的代码需要以我尝试过您的解决方案的格式进行转换,但也许我写错了。你能帮忙吗谢谢[link]gist.github.com/anonymous/7036375fecb31b7d6f01004b15898472【参考方案2】:由于您不能在选择列表中的另一个表达式中引用列别名,因此您需要
在第二次计算中重复 sliased 表达式 或者您需要将子查询从选择列表移动到 from 子句第二条建议的示例代码:
SELECT
amount_paid",
amount_paid/5 AS share price
FROM (SELECT sum(cost) as amount_paid from cost_table) t
Join member_management
【讨论】:
这是实际的查询。星星之间的代码需要以我尝试过您的解决方案的格式进行转换,但也许我写错了。你能帮忙吗谢谢[link]gist.github.com/anonymous/7036375fecb31b7d6f01004b15898472 请编辑问题本身并包含相关代码。但是,下次请在任何人回答之前这样做,因为你这样浪费我们的时间。 [链接]gist.github.com/anonymous/b5ca7b45d8180c52b9d45186c4e73a6b。我可能更难通过大查询来理解这个概念。很抱歉浪费你的时间,我是新手。虽然我得到了解决方案,但它在链接中。谢谢【参考方案3】:sum(cost) = "amount_paid" and amount_paid/5 = "share price" 那么你应该这样使用 sum(cost)/5 = "share price"..试试这个
SELECT
(SELECT sum(cost) from cost_table) AS "amount_paid",
(SELECT sum(cost)/5 from cost_table) AS "share price"
FROM member_management;
【讨论】:
[链接]gist.github.com/anonymous/7036375fecb31b7d6f01004b15898472。这是实际的查询。星星之间的部分 (** ** ) 需要转换。我想避免重新输入整个内容。【参考方案4】:上面使用的查询只是为了理解这个概念
“file 1”包含我正在使用的实际查询,“file 2”包含解决方案
[链接]https://gist.github.com/anonymous/b497f6a379d26532144ac13bd5fde20e
【讨论】:
以上是关于SQL计算查询的主要内容,如果未能解决你的问题,请参考以下文章