SQL實(shí)現(xiàn),將某列數(shù)據(jù)前x%,更新為XXX

有個(gè)需求:將總分表,前25%的人員,設(shè)置為AAA,中間55%設(shè)置為AA,后20%設(shè)置為A

表結(jié)構(gòu)如下:

CREATE TABLE `libra_score_summary`  (
  `ID` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主鍵',
  `PERSON_ID` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '人員ID',
  `BASIC_SCORE` decimal(32, 2) NULL DEFAULT NULL COMMENT '基本信息分',
  `SUBJECT_SCORE` decimal(32, 2) NULL DEFAULT NULL COMMENT '主體評(píng)價(jià)分',
  `GOOD_SCORE` decimal(32, 2) NULL DEFAULT NULL COMMENT '良好信息加分',
  `BAD_SCORE` decimal(32, 2) NULL DEFAULT NULL COMMENT '不良信息扣分',
  `TOTAL_SCORE` decimal(32, 2) NULL DEFAULT NULL COMMENT '總分',
  `CREDIT_RAITING` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '信用等級(jí)',
  `CREATE_TIME` datetime(0) NULL DEFAULT NULL COMMENT '創(chuàng)建時(shí)間',
  `UPDATE_TIME` datetime(0) NULL DEFAULT NULL COMMENT '更新時(shí)間',
  `CREDIT_RAITING_CODE` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '信用碼[1:綠碼 0:黃碼 -1:紅碼]',
  `PERFORMANCE_SCORE` double NULL DEFAULT NULL COMMENT '業(yè)績(jī)分',
  `ROLE_CODE` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '評(píng)分結(jié)果匯總表' ROW_FORMAT = Dynamic;

實(shí)現(xiàn)語句

-- 更新前25的人為AAA
先算出來前25%:select ROUND(count(1)*0.25) from libra_score_summary
UPDATE libra_score_summary
SET CREDIT_RAITING = 'AAA'
WHERE id IN (
 SELECT id
 FROM (
  SELECT id,TOTAL_SCORE
  FROM libra_score_summary
  ORDER BY TOTAL_SCORE DESC
  LIMIT  上邊查詢的數(shù)值
 ) t
)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容