MSSQL分組取後每一組的最新一條記錄
數據庫中二張表,用戶表和獎金記錄表,獎金記錄表中一個用戶有多條信息,有一個生效時間,現在要查詢:
獎金生效時間在三天前,每個用戶取最新一條獎金記錄,且用戶末鎖定
以前用的方法是直接寫在C#代碼中的:
for(所有末鎖定用戶)
查詢獎金記錄表 top 1 where uid=??? order by 生效時間 desc
if(上面查詢的記錄生效時間在三天前)
輸出
今天花了大部分時間研究了一下,終於找到一條SQL語句就可以把結果查出來的方法:
那個row_number函數在MSSQL2008以上才會有!!!
MSSQL分組取後每一組的最新一條記錄
相關推薦
MSSQL分組取後每一組的最新一條記錄
top 分享 mssql 方法 esc box nan 技術分享 -c 數據庫中二張表,用戶表和獎金記錄表,獎金記錄表中一個用戶有多條信息,有一個生效時間,現在要查詢: 獎金生效時間在三天前,每個用戶取最新一條獎金記錄,且用戶末鎖定 以前用的方法是直接寫在C#代碼中的:
mysql分組取每組前幾條記錄(排名) 附group by與order by的研究
select a.* from tb a where val = (select max(val) from tb where name = a.name) order by a.name--方法2:select a.* from tb a where not exists(select 1 from tb
sqlite 分組後獲取每組的第一條記錄
有表如下 CREATE TABLE test ( id INTEGER PRIMARY KEY ,groupid INTEGER DEFAULT 0 ,t INTEGER DEFAULT 0 ,x INTEGER DEFAULT 0 ,y INTEGER DEFAULT 0
mysql分組取每組前幾條記錄
1、表SQL: DROP TABLE IF EXISTS `ho_archives`; CREATE TABLE `ho_archives` ( `id` mediumint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
用postgresql特性簡化group by 後取每組前n條記錄的方法
需求: 求一段時間內各生產線前3名壞機的原因及壞機數. step 1, 從將原始資料中抽取品質資料放於t96臨時表 create temp table t96 on commit drop as
Mysql和Oracl 分組取每組前N條記錄
MySQL取每組的前N條記錄:使用自連線的方式一、對分組的記錄取前N條記錄:例子:取前 2條最大(小)的記錄1234567891011121314151617181.用子查詢:SELECT * FROM right2 a WHERE 2>(SELECT COUNT(*
分組查詢取每組前n條記錄例項
假設有這樣一張運動員比賽成績表 tb_score 現在要求查詢出每個國家的前三名的成績記錄,查詢語句可以這樣寫: 1、 select t3.id,t3.country,t3.score fro
sql查詢每組前幾條記錄
首先建立測試資料 CREATE TABLE `t2` ( `id` int(11) NOT NULL, `gid` char(1) DEFAULT NULL, `col1` int(11) DEFAULT NULL, `col2` int(11) DEFAU
Mysql獲取每組前N條記錄(開窗函式)
由於專案需求,我需要把查詢出來的資料進行分組,並且只需要每組前三條記錄,後來瞭解到MySQL實現開窗函式的方法,用了之後發現是可以,但今天發現這個方法在Navicat Premium軟體中執行第一次所查詢出來的資料不符合,執行第二次才是符合要求,具體原因有空再瞭
Mysql獲取每組前N條記錄
Select基礎知識 我們在實現select語句的時候,通用的sql格式如下: select *columns* from *tables* where *predicae1* group by *columns* having
oracle Insert 一次插入多條記錄
pan rac ora 方法 tab where ble code 兩種方法 oracle Insert 一次插入多條記錄有兩種方法: 1)Insert All Into table_name values ... insert all into table_name v
Laravel一次更新多條記錄,批量更新的方法
在我們實際應用中,免不了這樣的情況——例如我們同時錄入多條資訊,可能三條五條還好說,但量一旦變大,就會增加讀寫資料庫的次數,會降低效率,那麼,我們該如何實現,做到一次讀寫資料庫,批量更新呢? 例如這種情況: HTML程式碼: <!doctype html> &l
使用JDBC一次插入多條記錄(以MySQL為例)
閱讀本文需要的先修知識: 最基本的SQL語句 最基本的JDBC操作(如插入單條記錄) 如急需使用請直接看最後一段程式碼。 在JDBC中,插入記錄最簡單的方法是使用executeUpdate()方法,但該方法中的引數只能是單條SQL語句,其實對於需要INSERT或者UPDA
SpringMVC頁面向Controller提交陣列+Mybatis傳多個引數+MySQL一次寫入多條記錄
DAO層定義:int insertRole2Authorities(@Param("roleId")int roleId, @Param("authorities")List<Integer&g
sql語句優化一次進行多條記錄的-----插入和修改
更新: update t_student set name = 'timy' where id = 10 現在我要更新ID為10、12 、13的age等於10、12、13 UPDATE t_student SET age= CASEWHEN id 10 THEN10WHE
Oracle 怎樣一次插入多條記錄
Oracle 一次性插入多條記錄跟 MYSQL 有很大不同。MYSQL 是這樣的,但在 Oracle 中行不同。 INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees'),('Gates', 'Champs-E
ireport中一頁顯示多少條記錄的問題
今天研究jasperreport+ireport的時候,想設定一頁顯示多少條記錄的時候,查網上的資料都沒有給予我想要的答案,最後自己摸索出來了。 用ireport設計報表的模板的時候,我們可以用到一個元件叫
Sql server儲存過程以及一次插入多條記錄
首先簡單介紹sql server儲存過程吧。至於概念含義啥的就不做過多介紹了。它其實和mysql有些類似,語法大同小異。 還是用例子說明問題吧。CREATE PROCEDURE insert_supplier @supplier_name varchar(30), @sup
mysql使用遊標 觸發一次 插入多條記錄
DROP TRIGGER IF EXISTS `AutoInsert`; CREATE DEFINER=`root`@`localhost` TRIGGER `AutoInsert` AFTER INSERT ON `ml_exam` FOR EACH ROW begin
oracle 分組之後取每一組的前三行
SELECT * FROM (SELECT 分組的欄位名, ROW_NUMBER() OVER(PARTITION BY 分組的欄位名