select?c,count(b)?from?table_name?group?by?c
創(chuàng)新互聯(lián)憑借專業(yè)的設(shè)計(jì)團(tuán)隊(duì)扎實(shí)的技術(shù)支持、優(yōu)質(zhì)高效的服務(wù)意識和豐厚的資源優(yōu)勢,提供專業(yè)的網(wǎng)站策劃、做網(wǎng)站、網(wǎng)站制作、網(wǎng)站優(yōu)化、軟件開發(fā)、網(wǎng)站改版等服務(wù),在成都10多年的網(wǎng)站建設(shè)設(shè)計(jì)經(jīng)驗(yàn),為成都成百上千中小型企業(yè)策劃設(shè)計(jì)了網(wǎng)站。
c,及每個C對應(yīng)的元素?cái)?shù)量
分組排序的地方,你是想做成什么樣子?
select?*?from?table_name?order?by?c,a?asc
這個樣子嗎?
至于查詢性能,你做一個索引就OK了
你后面加一個group by就行了
select count(*) 人數(shù),健康情況 from PERSON group by 健康情況
mysql 分類匯總
select code,sum(num) total from 表名 group by code order by c
這里假定 你這個表為 table 你要查詢的class=fen
select id from table a where class=fen and not exists(select 1 from table where id=a.id and timea.time) limit 1
一般可用Group 子句+ SQL聚合函數(shù)獲取分類匯總信息
例如下列分組匯總SQL語句,返回本月每個產(chǎn)品類別的銷售總金額:
select 產(chǎn)品類別,sum(單價(jià)*數(shù)量) as 銷售金額 from 銷售記錄
where Date_Format(銷售日期,'%Y%m')=Date_Format(now(),'%Y%m')
group by 產(chǎn)品類別;
我這里給你一個? 類似的例子,?? 表結(jié)構(gòu)也就是簡單的?? 分類,? 明細(xì).
要查詢每個分類下面,?? 隨機(jī)明細(xì)? 幾條的情況.
你可以參考參考.
測試表與測試數(shù)據(jù)。
CREATE?TABLE?test_order_by_rand?(group_code?varchar(10),?name?varchar(10));
INSERT?INTO?test_order_by_rand?VALUES('水果',?'蘋果');
INSERT?INTO?test_order_by_rand?VALUES('水果',?'梨子');
INSERT?INTO?test_order_by_rand?VALUES('水果',?'香蕉');
INSERT?INTO?test_order_by_rand?VALUES('水果',?'桃子');
INSERT?INTO?test_order_by_rand?VALUES('水果',?'菠蘿');
INSERT?INTO?test_order_by_rand?VALUES('蔬菜',?'蘿卜');
INSERT?INTO?test_order_by_rand?VALUES('蔬菜',?'白菜');
INSERT?INTO?test_order_by_rand?VALUES('蔬菜',?'蘑菇');
INSERT?INTO?test_order_by_rand?VALUES('蔬菜',?'毛豆');
INSERT?INTO?test_order_by_rand?VALUES('蔬菜',?'青椒');
INSERT?INTO?test_order_by_rand?VALUES('堅(jiān)果',?'核桃');
INSERT?INTO?test_order_by_rand?VALUES('堅(jiān)果',?'榛子');
INSERT?INTO?test_order_by_rand?VALUES('堅(jiān)果',?'杏仁');
INSERT?INTO?test_order_by_rand?VALUES('堅(jiān)果',?'花生');
INSERT?INTO?test_order_by_rand?VALUES('堅(jiān)果',?'開心果');
預(yù)期目標(biāo),?按照?group_code?進(jìn)行分組,?每個分組內(nèi),?進(jìn)行隨機(jī)獲取數(shù)據(jù).
SELECT
group_code,
name
FROM
(
SELECT
CASE?
WHEN?@cn?!=?group_code?THEN?@rownum:=?1?
ELSE?@rownum:=?@rownum?+?1??
END?AS?No,
group_code,
@cn?:=?group_code?AS?group_code,
name
FROM
(SELECT?@rownum:=0)?r,
(SELECT?@cn:=?'')?p,
(SELECT?*?FROM?test_order_by_rand?order?by?group_code,?rand())?tmp
)??subQuery
WHERE
No?=?3
ORDER?BY
group_code;
這里套了2層子查詢,?其中的
(SELECT?*?FROM?test_order_by_rand?order?by?group_code,?rand())?tmp??
用于實(shí)現(xiàn),?針對每一個??group_code?進(jìn)行分組,?下屬的?name?的數(shù)據(jù),?進(jìn)行隨機(jī)排序
其中的
(......)??subQuery
用于實(shí)現(xiàn),?針對?前面的?按?group_code?分組,?name?隨機(jī)排序后的數(shù)據(jù)。
模擬一個??row_number()?over(partition?by?group_code)?的處理
最后的?No?=?3?用于限制,?每一個?group_code?下面,?顯示多少行.
執(zhí)行結(jié)果:
+------------+--------+
|?group_code?|?name???|
+------------+--------+
|?水果???????|?蘋果???|
|?水果???????|?香蕉???|
|?水果???????|?梨子???|
|?蔬菜???????|?青椒???|
|?蔬菜???????|?白菜???|
|?蔬菜???????|?蘑菇???|
|?堅(jiān)果???????|?核桃???|
|?堅(jiān)果???????|?花生???|
|?堅(jiān)果???????|?開心果?|
+------------+--------+
9?rows?in?set?(0.00?sec)