生產遇到的疑難問題彙總

2021-09-24 20:03:39 字數 1882 閱讀 3479

一、有乙個這樣的需求,統計出在每個國家的銷量並排序,所得的結果應該包含國家、銷量、排名等字段。排序好辦,有乙個問題是如何新增排名這個字段,可以有如下幾種方式,

假設對銷量排序的結果是中間表temp,包括國家(delivery_country)、銷量(sale_count)兩個字段。

1、通過select子查詢的方式構造rank欄位

select 

( select

count(*) from temp b where

b.sale_count > a.sale_count or

(b.sale_count = a.sale_count and

b.delivery_country > a.delivery_country)

)+1 as rank,

temp.*

from temp a

order by rank

2、使用者變數

set @rownum=0;	

select t.*,@rownum := @

rownum +1 as rank from temp t

二、需求:統計某個時間段內,每個的資料,如果當月沒有資料則顯示為0。在實際操作中,按月分組統計資料的時候,只顯示有資料的時間,

沒有資料則不顯示,為了實現我們的需求,有一下幾種方法:

1、在統計的時候,外層巢狀迴圈對每個月彙總

sum(case when 月份=2017-11月 then sales_count else 0 end) neg_7,

sum(case when 月份=2017-12月 then sales_count else 0 end) neg_6,

sum(case when 月份=2018-01月 then sales_count else 0 end) neg_5,

sum(case when 月份=2018-02月 then sales_count else 0 end) neg_4,

sum(case when 月份=2018-03月 then sales_count else 0 end) neg_3,

2、可以找乙個資料庫中的表,設定使用者變數

select @num:=-1

select

@num:=@num+1,

date_format(adddate(concat('2017-11','-01'),

interval @num month),'%y-%m') as month

from customer_sta

where date_format(adddate(concat('2017-11','-01'),

interval @num month),'%y-%m') < date_format(curdate(),'%y-%m-%d')

order by month

如上所示的sql即取得從2023年11月開始到現在為止的所有月份。將其與我們的中間結果集進行關聯即可得。也可以將上述sql改寫成如下形式。

select 

@num:=@num+1,date_format(adddate($concat_select,

interval @num month),'%y-%m') as month

from customer_sta,(select @num:=-1) t

where date_format(adddate($concat_select,

interval @num month),'%y-%m') < date_format(curdate(),'%y-%m-%d')

order by month

VC疑難問題彙總

error lnk2001 無法解析的外部符號 crtdbgreport 專案屬性 c c 生成 執行時庫 0x7c921230 處未處理的異常 使用者斷點 選擇繼續n 200 次以後可以繼續 debug版直接執行 release版都沒問題 lnk2001 無法解析的外部符號 argv 在共享dll...

MS SQL Server 疑難問題

有一表a id date name 1 2007 01 01 ccc 1 2007 01 01 ddd 1 2007 01 01 vv 1 2007 02 01 ttttt 2 2007 01 01 gg 3 2007 01 02 ccc 3 2007 01 01 ccc 4 2007 01 04 ...

python疑難問題

python的列表之間有關係嗎?group queue for in range 2 各組的子佇列 queue queue 組佇列,控制組與組之間的執行順序,因為每個組的專案要一起執行 group queue 6 5 for i in range len group queue print queu...