濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 在sql中對(duì)兩列數(shù)據(jù)進(jìn)行運(yùn)算作為新的列操作

在sql中對(duì)兩列數(shù)據(jù)進(jìn)行運(yùn)算作為新的列操作

熱門標(biāo)簽:芒果電話機(jī)器人自動(dòng)化 廣東人工電話機(jī)器人 信陽(yáng)穩(wěn)定外呼系統(tǒng)運(yùn)營(yíng)商 湖南人工外呼系統(tǒng)多少錢 日照旅游地圖標(biāo)注 石家莊電商外呼系統(tǒng) 申請(qǐng)外呼電話線路 南通自動(dòng)外呼系統(tǒng)軟件 百度地圖圖標(biāo)標(biāo)注中心

如下所示:

select a1,a2,a1+a2 a,a1*a2 b,a1*1.0/a2 c from bb_sb

把a(bǔ)表的a1,a2列相加作為新列a,把a(bǔ)1,a2相乘作為新列b,注意:

相除的時(shí)候得進(jìn)行類型轉(zhuǎn)換處理,否則結(jié)果為0.

select a.a1,b.b1,a.a1+b.b1 a from bb_sb a ,bb_cywzbrzb b

這是兩個(gè)不同表之間的列進(jìn)行運(yùn)算。

補(bǔ)充知識(shí):Sql語(yǔ)句實(shí)現(xiàn)不同記錄同一屬性列的差值計(jì)算

所使用的表的具體結(jié)構(gòu)如下圖所示

Table中主鍵是(plateNumber+currentTime)

要實(shí)現(xiàn)的查詢是:

給定車牌號(hào)和查詢的時(shí)間區(qū)間,查詢給定的時(shí)間區(qū)間內(nèi)所包含記錄的currentTime的差值,并計(jì)算AverageSpeed和該差值的乘積,求這段時(shí)間內(nèi)的最高速度(HighestSpeed),并按照type值得不同進(jìn)行劃分。–>(type值只有0和1兩個(gè)值)

主要思路是,首先能夠得出的是相同type類型下同一個(gè)車牌號(hào)(也即同一車輛)在給定的時(shí)間區(qū)間內(nèi)的currentTime的差值,比如按照currentTime排序號(hào),相鄰兩條記錄currentTime的差值,得出這個(gè)以后,其余的都可以通過(guò)聚合函數(shù)得出。

我們以車牌號(hào)為京A111111為例,設(shè)計(jì)如下圖所示的測(cè)試用例。

可以看到車牌號(hào)為京A111111的車輛總共有6條記錄,其中type為0的有兩條,type為1的有4條,

我們首先計(jì)算時(shí)間的差值,sql語(yǔ)句書寫如下:

SELECT a.platenumber, 
  a.currenttime, 
  a.type, 
  a.averagespeed, 
  a.highestspeed, 
  currenttime - (SELECT currenttime 
      FROM carmultispeedinfo 
      WHERE platenumber = a.platenumber 
        AND type = a.type 
        AND currenttime  a.currenttime 
      ORDER BY currenttime DESC 
      LIMIT 1)AS timediff 
FROM carmultispeedinfo a 

通過(guò)navicat可以看到如下圖所示的查詢結(jié)果:

通過(guò)核查timediff的值是正確的,這樣之后就可以在這個(gè)基礎(chǔ)上添加內(nèi)容了。

完整的sql語(yǔ)句如下:

SELECT Sum(aa.averagespeed * aa.timediff) AS milesdiff, 
  Max(aa.highestspeed)    AS HighestSpeed, 
  Sum(aa.timediff)     AS timediff, 
  aa.type 
FROM (SELECT a.platenumber, 
    a.currenttime, 
    a.type, 
    a.averagespeed, 
    a.highestspeed, 
    currenttime - (SELECT currenttime 
        FROM carmultispeedinfo 
        WHERE platenumber = a.platenumber 
          AND type = a.type 
          AND currenttime  a.currenttime 
        ORDER BY currenttime DESC 
        LIMIT 1) AS timediff 
  FROM carmultispeedinfo a)aa 
WHERE aa.platenumber = '京A111111' 
  AND aa.currenttime >= 1521790124670 
  AND aa.currenttime = 1521790125685 
GROUP BY aa.type 

顯示結(jié)果如下:

經(jīng)過(guò)核對(duì),是我們想要得出的結(jié)果。之后將sql對(duì)應(yīng)替換到mybatis的mapper文件中就可以了。記錄一下,備忘>將來(lái)有更深入的理解之后會(huì)繼續(xù)更新,謝謝大家,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • mysql批量更新多條記錄的同一個(gè)字段為不同值的方法
  • MySQL根據(jù)某一個(gè)或者多個(gè)字段查找重復(fù)數(shù)據(jù)的sql語(yǔ)句
  • MySQL計(jì)算兩個(gè)日期相差的天數(shù)、月數(shù)、年數(shù)

標(biāo)簽:阿里 惠州 呼和浩特 公主嶺 牡丹江 沈陽(yáng) 天津 合肥

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在sql中對(duì)兩列數(shù)據(jù)進(jìn)行運(yùn)算作為新的列操作》,本文關(guān)鍵詞  在,sql,中,對(duì),兩列,數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在sql中對(duì)兩列數(shù)據(jù)進(jìn)行運(yùn)算作為新的列操作》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于在sql中對(duì)兩列數(shù)據(jù)進(jìn)行運(yùn)算作為新的列操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    汨罗市| 乌兰浩特市| 攀枝花市| 鄂托克旗| 彭水| 三河市| 廊坊市| 枞阳县| 德江县| 固始县| 呼伦贝尔市| 延长县| 涡阳县| 建宁县| 泸州市| 巴彦县| 永平县| 霸州市| 平遥县| 武义县| 天等县| 沐川县| 天峻县| 阿拉善左旗| 安徽省| 和顺县| 磐石市| 汾阳市| 苗栗县| 特克斯县| 浦江县| 酒泉市| 灵石县| 尼勒克县| 武定县| 宜城市| 河西区| 葫芦岛市| 徐闻县| 工布江达县| 汝阳县|