mysql count count distinct with examples
Сазнајте о употреби различитих облика функције МиСКЛ ЦОУНТ са примерима:
ЦОУНТ је једноставна агрегатна функција, али врло ефикасна и широко коришћена. Врло једноставним речима, користи се за БРОЈ броја редова према датом СЕЛЕЦТ упиту и критеријумима.
Овај водич ће објаснити синтаксу и употребу једноставних ЦОУНТ, ЦОУНТ са условима, ЦОУНТ са ДИСТИНЦТ, ЦОУНТ са ГРОУП БИ итд.
Шта ћете научити:
Разне врсте МиСКЛ ЦОУНТ
Тип | Опис | Синтакса |
---|---|---|
ЦОУНТ (*) | Функција ЦОУНТ (*) враћа бр. редова дохваћених наредбом СЕЛЕЦТ, укључујући редове који садрже НУЛЛ и дупликате вредности | ОДАБЕРИТЕ БРОЈ (*) ИЗ {таблеНаме} |
ЦОУНТ (израз) | ЦОУНТ (израз) ће рачунати вредност тамо где израз није нулл. Израз може бити нешто једноставно попут назива колоне или сложеног израза као што је ИФ функција. | СЕЛЕЦТ ЦОУНТ (Екпрессион) из {таблеНаме} |
ЦОУНТ (ДИСТИНЦТ израз) | ЦОУНТ (ДИСТИНЦТ израз) - Кључна реч ДИСТИНЦТ би резултирала бројањем само јединствених не нулл вредности против израза. На пример - ЦОУНТ (ДИСТИНЦТ цустомерНаме) - бројао би само редове који имају различите вредности за име купца | СЕЛЕЦТ ЦОУНТ (ДИСТИНЦТ израз) из {таблеНаме} |
МиСКЛ ЦОУНТ примери
Тест подаци
За примере функције МиСКЛ ЦОУНТ користили бисмо следеће табеле и податке.
Табеле:
# 1) Продуцт_Детаилс
У продавници чува детаље о разним производима
- продуцт_ид - ИНТ
- име_производа - ВАРЦХАР
- цена - ДЕЦИМАЛНА
- цатегори_ид - ИНТ (СТРАНИ КЉУЧ - ид из табеле Цатегори_Детаилс)
# 2) Детаљи_категорије:
- ид_категорије: ИНТ
- име_категорије: ВАРЦХАР
Креирајмо табеле и убацимо лажне податке користећи доленаведене упите:
CREATE TABLE `product_details` ( `product_id` int NOT NULL, `product_name` varchar(100), `price` decimal(5,2), `category_id` int, FOREIGN KEY (category_id) REFERENCES category_details(category_id), PRIMARY KEY(product_id) ) CREATE TABLE `category_details` ( `category_id` int NOT NULL, `category_name` varchar(100), PRIMARY KEY(category_id) ) INSERT INTO `category_details` (`category_id`,`category_name`) VALUES (1,'FMCG'),(2,'FURNITURE'),(3,'FASHION'),(4,'APPLIANCES'),(5,'ELECTRONICS'); INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (1,'Biscuits',0.5,1),(2,'Chocolates',1,1), (3, 'Washing Powder',5,1),(4, 'Apple IPhone', 500,5), (5, 'Batteries',2,5),(6,'Floor cleaner',2.5,1),(7,'Jeans- Levis',100,1),(8,'Mixer grinder',50,4),(9,'Capsicum',2,1),(10,'Sugar',1,1),(11,'Study Table',50,2);
Погледајте слике табела са подацима о тестовима како су горе створене.
Табела производа_детаљи
Табела категорија_појединости
ручно тестирање питања и одговори за искусне
Једноставно ЦОУНТ
У овом одељку видећемо функцију ЦОУНТ на најједноставнији начин.
Употријебит ћемо ЦОУНТ за враћање броја редова без провјере НУЛЛ или ДИСТИНЦТ.
SELECT COUNT(*) FROM product_details;
Излаз:
ЦОУНТ (*) |
---|
Једанаест |
Са горњим упитом, само ћемо добити број редова враћених у односу на наредбу селецт.
РАЧУНАЈТЕ СА УСЛОВИМА
Сада ћемо користити функцију ЦОУНТ са условима или вредностима колона.
Пример: Претпоставимо да желимо да рачунамо не. редова у којима не постоје не-нулл вредности за називе производа.
Можемо додати назив производа (или било које дато име колоне) као израз у функцији ЦОУНТ, што би резултирало бројањем редова који имају НОН НУЛЛ редова имена производа.
SELECT COUNT(product_name) FROM product_details;
У овом случају, излаз ће бити 11 (јер сви тест подаци већ имају вредности за ступац име_производа)
Излаз:
ЦОУНТ (назив_производа) |
---|
Једанаест |
Додајмо нови ред са НУЛЛ вредношћу за име_производа.
INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (12,NULL,0.5,1);
SELECT COUNT(product_name) from product_details;
Горњи ЦОУНТ упит ће вратити број свих редова који имају НОН НУЛЛ име_производа.
Пошто смо убацили ред са НУЛЛ име_производа, то се неће вратити у резултате. Дакле, излаз би и даље био 11 редова.
Излаз:
ЦОУНТ (назив_производа) |
---|
Једанаест |
РАЧУНАЈТЕ СА ДИСТИНЦТОМ
У претходним примерима користили смо функцију ЦОУНТ са изразом. Такође можемо комбиновати израз са наредбом ДИСТИНЦТ да бисмо добили све вредности НОН НУЛЛ, које су такође ЈЕДИНСТВЕНЕ.
Покушајмо да добијемо ДИСТИНЦТ цатегори_ид из табеле продуцт_детаилс.
SELECT COUNT(DISTINCT category_id) from product_details;
Излаз:
ЦОУНТ (ДИСТИНЦТ категорија_ид) |
---|
4 |
Као што видите горе - излаз је 4, што представља укупан бр. категорије_ид у табели продуцт_детаилс.
како претворити иоутубе у вав
РАЧУНАЈТЕ СА ГРОУП БИ
Погледајмо пример где желимо да користимо ЦОУНТ заједно са ГРОУП БИ. Ово је важна комбинација где можемо добити ЦОУНТ према груписаној колони и анализирати податке у зависности од различитих вредности циљане груписане колоне.
На пример: Пронађи бр. производа у односу на сваку категорију из табеле продуцт_детаилс.
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
ид_категорије | ЦОУНТ (*) |
---|---|
1 | 7 |
два | 1 |
4 | 1 |
5 | два |
Као што видимо горе, против сваког ид_категорије колона ЦОУНТ (*) представља број редова који припадају свакој категорији_ид.
РАЧУНАЈТЕ СА ИФ
Погледајмо пример коришћења ИФ услова унутар функције ЦОУНТ. Можемо да поставимо израз ИФ унутар функције ЦОУНТ и поставимо вредност на НУЛЛ за нетачно стање и било коју не-нулл вредност за прави услов.
Свака НОН НУЛЛ вредност рачунала би се као један ред в.р.т ЦОУНТ функције.
На пример: Користите функцију ЦОУНТ да бисте пронашли све производе у распону цена од 20 $.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
Излаз:
цоунт_лесс_тхан_20 |
---|
7 |
У горенаведеном упиту добили смо ЦОУНТ свих производа чији је распон цена између 0 и 20. За стање ФАЛСЕ поставили смо вредност НУЛЛ, која се не рачуна, када се ред процењује за различите вредности колона .
Питања и одговори за пословне аналитичаре из домена банкарства
РАЧУНАЈТЕ СА ПРИДРУЖИВАЊИМА
ЦОУНТ се може користити и са наредбама ЈОИН. Будући да се ЦОУНТ односи на бр. редова, може се користити са било којом комбинацијом упита који ради на једној или више табела помоћу ЈОИНС.
Пример: Придружите се табелама продуцт_детаилс и цатегори_детаилс и пронађите бројање по категорији_име из табеле продуцт_детаилс.
SELECT category_name, COUNT(category_name) from product_details pd INNER JOIN category_details cd ON cd.category_id = pd.category_id GROUP BY category_name;
Излаз:
име категорије | ЦОУНТ (име_категорије) |
---|---|
ФМЦГ | 7 |
НАМЈЕШТАЈ | 1 |
АПАРАТИ | 1 |
ЕЛЕКТРОНИКА | два |
Савет и трик
Коришћење псеудонима колоне за колону која приказује резултат функције ЦОУНТ: Можемо користити псеудоним колоне заједно са функцијом ЦОУНТ да бисмо имали кориснички дефинисана имена колона за колону која приказује резултате функције ЦОУНТ.
На пример: Претпоставимо да желимо да избројимо број категорија у табели категорија_детаљи и добијену колону именујемо као категорија_број, можемо користити упит испод:
SELECT COUNT(*) as category_count from category_details;
Излаз:
категорија_број |
---|
5 |
Често постављана питања
П # 1) Како да користим функцију ЦОУНТ у МиСКЛ?
Одговор: Функција ЦОУНТ је збирна функција која се може користити на 3 начина.
- ЦОУНТ (*) - Ово би ПРЕБРОЈИЛО све редове које враћа СЕЛЕЦТ КУЕРИ.
- ЦОУНТ (израз) - Ово би БРОЈИЛО све НОН НУЛЛ вредности за израз.
- ЦОУНТ (израз ДИСТИНЦТ) - Ово би РАЧУНАЛО све НОН НУЛЛ и УНИКУЕ вредности према изразу.
П # 2) Која је разлика између Цоунт (*) и Цоунт (1) у СКЛ-у?
Одговор: Обе изјаве се понашају на идентичан начин. Из МиСКЛ-ове дефиниције ЦОУНТ, било шта у загради () је израз - и било која НОН НУЛЛ вредност рачунаће се као 1.
Дакле, у овом случају и * и 1 се третирају као НОН НУЛЛ и враћа се исти резултат, тј. Резултат оба упита у наставку био би исти.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
Закључак
У овом упутству смо сазнали о функцији ЦОУНТ и различитим варијацијама које пружа МиСКЛ.
Такође смо видели како можемо да користимо ЦОУНТ са различитим сценаријима, попут комбиновања ЦОУНТ са ГРОУП БИ и писања функције ИФ у оквиру функције ЦОУНТ.
Функција ЦОУНТ је једна од најважнијих и широко коришћених функција у МиСКЛ-у и у великој мери се користи за обједињавање података у зависности од наведених услова за једну или више табела.
Препоручено читање
- МиСКЛ АЛТЕР ТАБЛЕ - Како додати колону у табелу у МиСКЛ-у
- МиСКЛ ЦОНЦАТ и ГРОУП_ЦОНЦАТ функције са примерима
- МиСКЛ СТВОРИ КОРИСНИКА: Како створити новог корисника у МиСКЛ-у
- МиСКЛ ЈОИН Туториал: Унутрашњи, спољашњи, попречни, леви, десни и сопствени
- МиСКЛ ЛИКЕ - Водич са примерима синтаксе и употребе
- Клаузула МиСКЛ ГРОУП БИ - Водич са примерима
- МиСКЛ подниз и функције подниз_индекса са примерима
- МиСКЛ Водич за креирање погледа са примерима кода