SQL分組統計

2021-09-11 15:33:02 字數 979 閱讀 4729

全國各省份人口數排前三的城市

思路:先按照省份分組,再組內按照人口數排序取前三

<

!--mysql-->

set@num=0

,@class=''

;select

*from

(select p.*,

@num :=if(

@class

=province,

@num+1

,1)as rank,

@class := p.province as pclass

from population as p

order

by province, popu desc

)temp

where rank <

4;

postgresql有比較簡潔的用法

<

!--postgresql-->

select

*from

(select p.*,

row_number(

)over

(partition

by province order

by popu desc

)as rank

from population p

)temp

where

temp

.rank <

4

一周內使用者登入次數統計

思路:調整日期格式,where篩選7天內的資料

select date(ctt) cttd, count(*)

from login

where date(ctt) > date_sub(curdate(), interval 7 day)

group by cttd

order by cttd;

SQL分組統計

第一種情況 橫向顯示 先看下面的乙個資料表 現在的需求是 統計出v coun每一種取值情況下,對就的v iseneded的數量。oracle中的 sql 如下 select v count,sum case when v isended 1then 1else 0end as 一的數量,sum ca...

SQL語句 分組統計

一 教師號 星期號 是否有課 有 有 有 有 有 寫一條sql語句讓你變為這樣的表 教師號 星期一 星期二 星期三 各星期下的數字表示 對應的教師在星期幾已經排的課數 答案是 select 教師號 sum case when 星期號 1then 是否有課 else 0end as 星期一 sum c...

group by分組統計SQL語句

用一條查詢語句,查出各姓名的數值餘額.使用者表 姓名a bc 扣費表 姓名 數值 a 3.5 b 5.2 a 2.充值表 姓名 數值 b 10 a 10 a 10.5 返回 姓名 差額 充值和 扣費和 測試通過 select table1.tname,table1.telname,table3.充值...