લેખ ડિરેક્ટરી
MySQL વપરાશ દ્વારા સરવાળો જૂથ?MySQL ડેટાબેઝગણતરી દ્વારા જૂથની વિગતવાર સમજૂતી
નિવેદન દ્વારા MySQL ગ્રૂપ
GROUP BY સ્ટેટમેન્ટ એક અથવા વધુ કૉલમના આધારે સેટ કરેલા પરિણામનું જૂથ બનાવે છે.
જૂથબદ્ધ કૉલમ પર આપણે COUNT, SUM, AVG, વગેરે કાર્યોનો ઉપયોગ કરી શકીએ છીએ.
વાક્યરચના દ્વારા જૂથ
SELECT column_name, function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;
ઉદાહરણ પ્રદર્શન
આ પ્રકરણમાંનું ઉદાહરણ નીચેના કોષ્ટકની રચના અને ડેટાનો ઉપયોગ કરે છે. તેનો ઉપયોગ કરતા પહેલા, અમે ડેટાબેઝમાં નીચેનો ડેટા આયાત કરી શકીએ છીએ.
SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for `employee_tbl` -- ---------------------------- DROP TABLE IF EXISTS `employee_tbl`; CREATE TABLE `employee_tbl` ( `id` int(11) NOT NULL, `name` char(10) NOT NULL DEFAULT '', `date` datetime NOT NULL, `singin` tinyint(4) NOT NULL DEFAULT '0' COMMENT '登录次数', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of `employee_tbl` -- ---------------------------- BEGIN; INSERT INTO `employee_tbl` VALUES ('1', '小明', '2016-04-22 15:25:33', '1'), ('2', '小王', '2016-04-20 15:25:47', '3'), ('3', '小丽', '2016-04-19 15:26:02', '2'), ('4', '小王', '2016-04-07 15:26:14', '4'), ('5', '小明', '2016-04-11 15:26:40', '4'), ('6', '小明', '2016-04-04 15:26:54', '2'); COMMIT; SET FOREIGN_KEY_CHECKS = 1;
આયાત સફળ થયા પછી, નીચેના SQL સ્ટેટમેન્ટને ચલાવો:
mysql> set names utf8; mysql> SELECT * FROM employee_tbl; +----+--------+---------------------+--------+ | id | name | date | singin | +----+--------+---------------------+--------+ | 1 | 小明 | 2016-04-22 15:25:33 | 1 | | 2 | 小王 | 2016-04-20 15:25:47 | 3 | | 3 | 小丽 | 2016-04-19 15:26:02 | 2 | | 4 | 小王 | 2016-04-07 15:26:14 | 4 | | 5 | 小明 | 2016-04-11 15:26:40 | 4 | | 6 | 小明 | 2016-04-04 15:26:54 | 2 | +----+--------+---------------------+--------+ 6 rows in set (0.00 sec)
આગળ આપણે ડેટા ટેબલને નામ દ્વારા જૂથબદ્ધ કરવા માટે GROUP BY સ્ટેટમેન્ટનો ઉપયોગ કરીએ છીએ અને દરેક વ્યક્તિ પાસે કેટલા રેકોર્ડ છે તે ગણીએ છીએ:
mysql> SELECT name, COUNT(*) FROM employee_tbl GROUP BY name; +--------+----------+ | name | COUNT(*) | +--------+----------+ | 小丽 | 1 | | 小明 | 3 | | 小王 | 2 | +--------+----------+ 3 rows in set (0.01 sec)
રોલઅપ સાથે ઉપયોગ કરો
ROLLUP સાથે જૂથબદ્ધ આંકડાઓના આધારે સમાન આંકડાઓ (SUM, AVG, COUNT...) લાગુ કરી શકે છે.
ઉદાહરણ તરીકે, અમે ઉપરોક્ત ડેટા કોષ્ટકને નામ દ્વારા જૂથબદ્ધ કરીએ છીએ, અને પછી દરેક વ્યક્તિએ કેટલી વખત લૉગ ઇન કર્યું છે તેની ગણતરી કરીએ છીએ:
mysql> SELECT name, SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP; +--------+--------------+ | name | singin_count | +--------+--------------+ | 小丽 | 2 | | 小明 | 7 | | 小王 | 7 | | NULL | 16 | +--------+--------------+ 4 rows in set (0.00 sec)
રેકોર્ડ NULL દરેક માટે લોગીનની સંખ્યા દર્શાવે છે.
અમે NUll, coalesce સિન્ટેક્સને બદલી શકે તેવા નામને સેટ કરવા માટે સંકલનનો ઉપયોગ કરી શકીએ છીએ:
select coalesce(a,b,c);
પરિમાણ વર્ણન: જો a==null, b પસંદ કરો; જો b==null, c પસંદ કરો; જો a!=null, a પસંદ કરો; જો abc નલ હોય, તો નલ (અર્થહીન) પરત કરો.
નીચેના ઉદાહરણમાં જો નામ ખાલી હોય તો આપણે તેના બદલે કુલનો ઉપયોગ કરીએ છીએ:
mysql> SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP; +--------------------------+--------------+ | coalesce(name, '总数') | singin_count | +--------------------------+--------------+ | 小丽 | 2 | | 小明 | 7 | | 小王 | 7 | | 总数 | 16 | +--------------------------+--------------+ 4 rows in set (0.01 sec)
હોપ ચેન વેઇલિયાંગ બ્લોગ ( https://www.chenweiliang.com/ ) શેર કર્યું "MySQL sum group by use? MySQL ડેટાબેઝમાં કાઉન્ટ દ્વારા જૂથની વિગતવાર સમજૂતી" તમારા માટે ઉપયોગી છે.
આ લેખની લિંક શેર કરવા માટે આપનું સ્વાગત છે:https://www.chenweiliang.com/cwl-477.html
વધુ છુપાયેલા યુક્તિઓ🔑 અનલૉક કરવા માટે, અમારી ટેલિગ્રામ ચેનલમાં જોડાવા માટે આપનું સ્વાગત છે!
ગમે તો શેર કરો અને લાઈક કરો! તમારા શેર અને લાઈક્સ એ અમારી સતત પ્રેરણા છે!