1. 程式人生 > >mysql執行開窗函式,實現rank_ower()

mysql執行開窗函式,實現rank_ower()

select sku_id,sku_name,first_cate_id,second_cate_id,cate_id,id_level,group_price,sales,amt,rank from (  
  select sku_id,sku_name,first_cate_id,second_cate_id,cate_id,id_level,group_price,sales,amt,@rownum:[email protected]+1 ,  
  if(@sec=_tmp.second_cate_id,@rank:[email protected]+1,@rank:=1) as rank,  
  @sec:=_tmp.second_cate_id
  from (   
  select sku_id,sku_name,first_cate_id,second_cate_id,cate_id,id_level,group_price,sales,amt from pdd_product_3 order by second_cate_id asc ,amt desc   
  ) _tmp , 
  (select @rownum :=0 , @sec := null ,@rank:=0) a  
) result
WHERE rank <= 10

沒有用到rownum 可以不設定

相關推薦

mysql執行開窗函式實現rank_ower()

select sku_id,sku_name,first_cate_id,second_cate_id,cate_id,id_level,group_price,sales,amt,rank from (     select sku_id,sku_name,first_ca

Mysql event時間觸發器實現定時修改某些符合某一條件的某一字段

使用 開啟 ndt 重要 () schedule 網上 sts lte 我最近做項目遇到一個問題就是數據庫的的訂單需要定時檢查自己的訂單狀態,如果到了endtime字段的時間訂單狀態還是2,就將訂單狀態修改為4 在網上找到類似的解決方法。 定時的關鍵是要結合mysql的某些

在項目中遷移MS SQLServer到Mysql數據庫實現MySQL數據庫的快速整合

mage 操作 info 支持 文件選擇 需要 並且 在服務器 重要 在開發項目的時候,往往碰到的不同的需求情況,兼容不同類型的數據庫是我們項目以不變應萬變的舉措之一,在底層能夠兼容多種數據庫會使得我們開發不同類型的項目得心應手,如果配合快速的框架支持,那更是錦上添花的舉措

mysql 樹操作函式取子節點取父節點

取子節點 DROP FUNCTION IF EXISTS FUN_GET_CHILD_LIST; CREATE FUNCTION FUN_GET_CHILD_LIST (ROOT_ID INT)RETURNS varchar(1000)BEGINDECLARE sTemp VARCHAR (

RT-Thread 讀後感2——建立執行緒(定義執行緒的棧定義執行函式定義執行緒控制塊執行緒初始化函式

1. 定義執行緒的棧 多執行緒作業系統中,每個執行緒都是獨立的,互不干擾,所以要為每個執行緒分配獨立的棧空間,這個棧空間通常是一個預先定義好的全域性陣列, 也可以是動態分配的一段記憶體空間,但它們都存在於 RAM 中。定義兩個執行緒棧如下: // 定義執行緒棧 大小設定為512 rt_ui

寫一函式實現兩個字串的比較

寫一函式,實現兩個字串的比較。即自己寫一個strcmp函式,函式原型:  int stremp(char *p1,char*p2) 設p1指向字串s1,p2指向字串s2。要求:當s1=s2時,返回值為0。當s1不等於s2時,返回它們二者的第一個不同字元的ASCII碼差值(如“BOY”與

C#多執行緒基礎實現主子執行緒有序輸出

建立控制檯程式 using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsyncThread { publi

MySQL常用日期函式日期相減按天、周、月查詢

MySQL日期函式 select now(); -- 獲取當前時間 select DAYOFWEEK(now()); -- -- 1=星期天,2=星期一,3星期二,... select WEEKDAY(now()); -- --0=星期一,1星期二,... select DAYOFMO

Mysql Stored Routines 函式使用 實現騰訊地圖 距離計算

  Mysql Stored Routines,有儲存過程(Procedures)和函式(Functions),在實際專案使用中用的比較多,是傳統企業資訊系統的最愛,比如很多分析報表幾乎都依賴儲存過程實現。Mysql參考手冊給出了Stored Routines 2個常用使用場景:

mysql正則表示式實現多個欄位匹配多個like模糊查詢

現在有這麼一個需求 一個questions表,欄位有題目(TestSubject),選項(AnswerA,AnswerB,AnswerC,AnswerD,AnswerE) 要求欄位不包含png,jpg,jpeg,gif  正常情況下會這麼寫 select * from questions

C語言:呼叫子函式實現選擇排序和字串連線

2018年11月14日 19:57:26 return 微明 閱讀數:1 個人分類: C語言

C++ vector用法(詳解!!函式實現

1,簡述一下vector的基本操作,它的size,capacity(),clear,reverse,reserve,   push_back等!!! 2,說說,vector的儲存特性,是順序儲存還是如同連結串列般,如果是順序儲存的話,那麼是如何執行   erase,inse

封裝read、write、accept、connect函式實現超時操作。

學習linux網路程式設計的時候,看視訊學習,封裝了一些可以直接拿來用的函式,方便以後查詢。 /**  * read_timeout - 讀超時檢測函式,不含讀操作  *@fd: 檔案描述符  *@wait_seconds: 等待超時秒數,如果為0表示不檢測超時  * 成功

不利用C語言庫函式實現字串相關函式

1 #include<stdio.h> 2 3 int strLength(char* s)//求字元長度 4 { 5 int i=0; 6 while(s[i]!=NULL) 7 { 8 i++; 9 }

執行緒概念狀態及狀態之間的關係實現執行緒方法實現同步執行緒的方式

1.執行緒概念:是程序中的一個執行控制單元,執行路徑;一個程序中至少有一個執行緒在負責控制程式稱為單執行緒;一個程序中有多個執行路徑時,這個程式稱為多執行緒 2.狀態:就緒,執行,synchronize阻塞,wait和sleep掛起,結束 3.狀態之間的關係:呼叫執行緒的s

java中利用jsch執行遠端命令實現sftp

利用jsch可以執行遠端命令並實現sftp檔案傳輸,以下為自定義的util: import com.jcraft.jsch.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; impor

寫一個函式實現一個整形有序陣列的二分查詢

程式程式碼: #include <stdio.h> #include <windows.h> int binary_search(int arr[], int num, int

c++寫一個函式實現輸入一個字串將其中的字元按逆序輸出

#include "stdafx.h" #include <iostream> #include <string.h> using namespace std; #define N 20 int _tmain(int argc, _TCHAR* argv[]) {

Python(69)_寫函式實現修改檔案內容

#-*-coding:utf-8-*- import os ''' 寫函式,使用者傳入修改的檔名,與修改的內容 執行函式,完成整個檔案的批量修改操作 ''' def func(filename,old,new): with open(filename,encoding='utf-8') as f

oracle的dense_rank函式實現分組後組內排序取最值一組資料

1.按VESSEL_CD, SYEAR, SMonth進行分組,組內資料按SENDDATE排序。 select VESSEL_CD, SYEAR, SMonth, to_char(SENDDATE, 'yyyy-mm-dd hh24