把所有的同類數(shù)據(jù)按照大小的順序排列。如果數(shù)據(jù)的個數(shù)是奇數(shù),則中間那個數(shù)據(jù)就是這群數(shù)據(jù)的中位數(shù)。
十多年的麻山網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整麻山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“麻山網(wǎng)站設(shè)計”,“麻山網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
如果數(shù)據(jù)的個數(shù)是偶數(shù),則中間那2個數(shù)據(jù)的算術(shù)平均值就是這群數(shù)據(jù)的中位數(shù)。示例如下:找出這組數(shù)據(jù):23、29、20、32、23、21、33、25的中位數(shù)。解:首先將該組數(shù)據(jù)進行排列(這里按從小到大的順序),得到:20、21、23、23、25、29、32、33因為該組數(shù)據(jù)一共由8個數(shù)據(jù)組成,即n為偶數(shù),故按中位數(shù)的計算方法,得到中位數(shù)24,即第四個數(shù)和第五個數(shù)的平均數(shù)。
第五十九回 許褚裸衣斗馬超 曹操抹書間韓遂第六十回 張永年反難楊修 龐士元議取西蜀
眾數(shù):count()行數(shù)后取max值
平均數(shù):avg()
中位數(shù):(max()+min())/2
有點復雜,在你基礎(chǔ)上加了條有奇數(shù)的數(shù)據(jù)
創(chuàng)建表,插入數(shù)據(jù):
create?table?test
(cat_id?int,
price?int);
insert?into?test?values?(101,90);
insert?into?test?values?(101,99);
insert?into?test?values?(102,98);
insert?into?test?values?(103,96);
insert?into?test?values?(102,95);
insert?into?test?values?(102,94);
insert?into?test?values?(102,93);
insert?into?test?values?(103,99);
insert?into?test?values?(103,98);
insert?into?test?values?(103,97);
insert?into?test?values?(104,96);
insert?into?test?values?(104,95);
insert?into?test?values?(105,97);
insert?into?test?values?(105,96);
insert?into?test?values?(105,95);
執(zhí)行:
SELECT
t1.cat_id,
round(avg(t1.price),?1)?price
FROM
(
SELECT
*
FROM
(
SELECT
t.cat_id,
t.price,
count(*)?AS?rank
FROM
test?t
LEFT?OUTER?JOIN?test?r?ON?t.cat_id?=?r.cat_id
AND?t.price?=?r.price
GROUP?BY
t.cat_id,
t.price
ORDER?BY
t.cat_id,
t.price?DESC
)?s
)?t1,
(
SELECT?DISTINCT
a.cat_id,
round(a.maxrank?/?2)?rank
FROM
(
SELECT
cat_id,
max(rank)?maxrank,
MOD?(max(rank),?2)?modrank
FROM
(
SELECT
*
FROM
(
SELECT
t.cat_id,
t.price,
count(*)?AS?rank
FROM
test?t
LEFT?OUTER?JOIN?test?r?ON?t.cat_id?=?r.cat_id
AND?t.price?=?r.price
GROUP?BY
t.cat_id,
t.price
ORDER?BY
t.cat_id,
t.price?DESC
)?s
)?t1
GROUP?BY
cat_id
)?a,
(
SELECT
*
FROM
(
SELECT
t.cat_id,
t.price,
count(*)?AS?rank
FROM
test?t
LEFT?OUTER?JOIN?test?r?ON?t.cat_id?=?r.cat_id
AND?t.price?=?r.price
GROUP?BY
t.cat_id,
t.price
ORDER?BY
t.cat_id,
t.price?DESC
)?s
)?b
WHERE
a.cat_id?=?b.cat_id
AND?a.modrank?=?0
UNION?ALL
SELECT?DISTINCT
a.cat_id,
round(a.maxrank?/?2)?+?1?rank
FROM
(
SELECT
cat_id,
max(rank)?maxrank,
MOD?(max(rank),?2)?modrank
FROM
(
SELECT
*
FROM
(
SELECT
t.cat_id,
t.price,
count(*)?AS?rank
FROM
test?t
LEFT?OUTER?JOIN?test?r?ON?t.cat_id?=?r.cat_id
AND?t.price?=?r.price
GROUP?BY
t.cat_id,
t.price
ORDER?BY
t.cat_id,
t.price?DESC
)?s
)?t1
GROUP?BY
cat_id
)?a,
(
SELECT
*
FROM
(
SELECT
t.cat_id,
t.price,
count(*)?AS?rank
FROM
test?t
LEFT?OUTER?JOIN?test?r?ON?t.cat_id?=?r.cat_id
AND?t.price?=?r.price
GROUP?BY
t.cat_id,
t.price
ORDER?BY
t.cat_id,
t.price?DESC
)?s
)?b
WHERE
a.cat_id?=?b.cat_id
AND?a.modrank?=?0
UNION?ALL
SELECT?DISTINCT
a.cat_id,
round(a.maxrank?/?2)?rank
FROM
(
SELECT
cat_id,
max(rank)?maxrank,
MOD?(max(rank),?2)?modrank
FROM
(
SELECT
*
FROM
(
SELECT
t.cat_id,
t.price,
count(*)?AS?rank
FROM
test?t
LEFT?OUTER?JOIN?test?r?ON?t.cat_id?=?r.cat_id
AND?t.price?=?r.price
GROUP?BY
t.cat_id,
t.price
ORDER?BY
t.cat_id,
t.price?DESC
)?s
)?t1
GROUP?BY
cat_id
)?a,
(
SELECT
*
FROM
(
SELECT
t.cat_id,
t.price,
count(*)?AS?rank
FROM
test?t
LEFT?OUTER?JOIN?test?r?ON?t.cat_id?=?r.cat_id
AND?t.price?=?r.price
GROUP?BY
t.cat_id,
t.price
ORDER?BY
t.cat_id,
t.price?DESC
)?s
)?b
WHERE
a.cat_id?=?b.cat_id
AND?a.modrank?=?1
)?t2
WHERE
t1.cat_id?=?t2.cat_id
AND?t1.rank?=?t2.rank
GROUP?BY
t1.cat_id
結(jié)果:
其中:
select?*?from?(??
select?t.cat_id,t.price,count(*)?as?rank?from?test?t??
LEFT?OUTER?JOIN?test?r??
on?t.cat_id?=?r.cat_id??
and?t.price=r.price??
group?by?t.cat_id,t.price??
order?by?t.cat_id,?t.price?desc??
)?s
這條是主語句,主要是按照大小給出一個排名,然后根據(jù)中位數(shù)的公式,偶數(shù)的話,取最中間兩個的平均數(shù),奇數(shù)取最中間的數(shù)。自己研究一下吧。
把所有的同類數(shù)據(jù)按照大小的順序排列。如果數(shù)據(jù)的個數(shù)是奇數(shù),則中間那個數(shù)據(jù)就是這群數(shù)據(jù)的中位數(shù)。
如果數(shù)據(jù)的個數(shù)是偶數(shù),則中間那2個數(shù)據(jù)的算術(shù)平均值就是這群數(shù)據(jù)的中位數(shù)。示例如下:找出這組數(shù)據(jù):23、29、20、32、23、21、33、25的中位數(shù)。解:首先將該組數(shù)據(jù)進行排列(這里按從小到大的順序),得到:20、21、23、23、25、29、32、33因為該組數(shù)據(jù)一共由8個數(shù)據(jù)組成,即n為偶數(shù),故按中位數(shù)的計算方法,得到中位數(shù)24,即第四個數(shù)和第五個數(shù)的平均數(shù)。
中位數(shù)求法:(一)把排好序的數(shù)據(jù)按照“首尾成對”依次去掉,剩下的最后一個數(shù)據(jù)即為這組數(shù)據(jù)的中位數(shù)。(二)設(shè)一組數(shù)據(jù)共有n個數(shù)據(jù)。
當n為奇數(shù)時,這組數(shù)據(jù)中第“(n+1)/2”個數(shù)據(jù)即為這組數(shù)據(jù)的中位數(shù);當n為偶數(shù)時,這組數(shù)據(jù)中第“n/2”個數(shù)據(jù)和第“(n+2)/2”個數(shù)據(jù)的和一半,即為這組數(shù)據(jù)中位數(shù)。
中位數(shù),是把一組數(shù)據(jù)按照大小排序(為從小到大的順序)后,居于這組數(shù)據(jù)的“中間”位置的數(shù)。求一組數(shù)據(jù)的中位數(shù),一定要先排序,再求值。
當一組數(shù)據(jù)共有奇數(shù)個數(shù)時,它的中位數(shù)一定在這組數(shù)據(jù)中。當一組數(shù)據(jù)共有偶數(shù)個數(shù)時,它的中位數(shù)不一定在這組數(shù)據(jù)中。當一組數(shù)據(jù)中的每個數(shù)據(jù)都完全相同時,不管這組數(shù)據(jù)有奇數(shù)個還是偶數(shù)個,它的中位數(shù)都在這組數(shù)據(jù)中,這組數(shù)據(jù)中的任何一個數(shù)都可以作為中位數(shù)。
舉個例子,當原始數(shù)據(jù)為:30、10、20、70、60時,原始數(shù)據(jù)的總數(shù)是5,為奇數(shù),將原始數(shù)據(jù)按大小順序排列得到數(shù)據(jù):10、20、30、60、70,那么該數(shù)據(jù)的中位數(shù)的位置為(5+1)÷2=3,中位數(shù)既為順序排列數(shù)據(jù)的第3位數(shù)字30。