You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:使用临时表按Bet-Collect-Profit-Roi顺序展示列数据

解决SQL临时表列顺序展示及计算问题

要实现按Bet - Collect - Profit - Roi的顺序展示数据,同时用临时表避免计算误差,需要将INTO temp_table插入到第一个SELECT语句的末尾(FROM子句之前),完整代码如下:

-- 把基础计算结果存入临时表
SELECT 
    Bet = COUNT(*) OVER (), 
    Collect = SUM(CASE WHEN Result = 1 THEN (([BetfairWinSP] - 1) * .95 + 1) END) OVER (), 
    Profit = SUM(CASE WHEN Result = 1 THEN (([BetfairWinSP] - 1) * .95 + 1) END) OVER () - COUNT(*) OVER (), 
    df.RaceDateTime
INTO temp_table -- 插入的核心代码,将查询结果写入临时表
FROM  dbo.RaceJunction AS rj 
LEFT OUTER JOIN dbo.UKHRace AS uk ON rj.UKHRaceId = uk.Id
LEFT OUTER JOIN dbo.DataForm AS df ON rj.DataFormId = df.Id

-- 从临时表读取数据并计算Roi,按指定顺序输出
SELECT 
    Bet,
    Collect,
    Profit,
    Roi = Profit / Bet,
    RaceDateTime
FROM  temp_table
WHERE (1 = 1)

说明:

  • 临时表temp_table会存储第一个查询计算出的Bet、Collect、Profit和RaceDateTime值,确保后续计算Roi时使用的是同一批聚合结果,避免重复计算带来的误差
  • 第二个查询严格按照Bet - Collect - Profit - Roi的顺序输出列,同时保留了RaceDateTime字段供后续筛选或展示

内容的提问来源于stack exchange,提问作者racepro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 20:33:34