有一張表,內容如下:

其中ID是主鍵,希望查詢出來的結果是ID排序后,將相同name和type的連續ID的資料進行匯總,實作統計結果如下:

請教下大神這個應該怎么實作,謝謝。
uj5u.com熱心網友回復:
set @v=null;set @n=0;
select name,type,sum(count) as count,
if(@v!=concat(name,type),@n:=@n+1,@n) as t,
@v:=concat(name,type)
from table
group by t
uj5u.com熱心網友回復:
謝謝,這個基本實作了功能,但還是有點問題想請教,之前問題有個地方沒描述清楚,資料庫里面type值可能為空,這時候就會出問題,舉例如下:

這時候希望type為空的行合并到一起,但是執行結果會和前面行合并:

另外如果有點不明白,為什么加了group,t的值一直是以2的倍數遞增,而不加group,t的值是合理地遞增

uj5u.com熱心網友回復:
你可以在select ID,Name,Type,count from tb_test ORDER BY ID這里做點改動將type為null改為某個值
select ID,Name,if(isnull(Type),-1,Type),count from tb_test ORDER BY ID
uj5u.com熱心網友回復:
2的倍數遞增問題在select里不加count,sum, max等函式還是+1遞增
應該是mysql在執行這類函式時又過了一遍n+1的那個條件判斷
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/33238.html
標籤:MySQL
上一篇:VFP 提交到列印機的report的檔案名總是"Visual Foxpro", 我想根據程式里的變數名來命名,怎么弄啊?!!
