- 48
- 0
假设表结构是namestart_datenumceshi2021-11-221sss2021-11-212ceshi2021-01-203根据name分组和start_date分组上半年下半年,并且一个name一行展示上半年和下半年的统计num和,如何实现以下查询结果呢?namestart_dateshang_sumxia_sumceshi上半年31sss下半年02我尝试用如下sql实现,但是还是达不到预期SELECT `name`, start_date, IF(MONTH(start_date) >= 7,'下半年','上半年') as cycle, IF(IF(MONTH(start_date) >= 7,'下半年','上半年') = '上半年',SUM(num),0) as shang_sum, IF(IF(MONTH(start_date) >= 7,'下半年','上半年') = '下半年',SUM(num),0) as xia_sumFROM `task` GROUP BY `name`,cycle表结构sql如下:SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for task-- ----------------------------DROP TABLE IF EXISTS `task`;CREATE TABLE `task` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `project_id` int(11) NULL DEFAULT NULL, `name` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL, `start_date` date NULL DEFAULT NULL, `end_date` date NULL DEFAULT NULL, `num` int(11) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE) ENGINE = MyISAM AUTO_INCREMENT = 4 CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of task-- ----------------------------INSERT INTO `task` VALUES (1, 111, 'ceshi', '2021-11-22', NULL, 1);INSERT INTO `task` VALUES (2, 111, 'sss', '2021-11-21', NULL, 2);INSERT INTO `task` VALUES (3, 222, 'ceshi', '2021-01-20', NULL, 3);SET FOREIGN_KEY_CHECKS = 1;求大佬给点儿思路
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
焉梦终成 普通会员 1楼
在MySQL中,可以使用GROUP BY语句将查询结果分组并行展示。GROUP BY语句允许您将数据分组,然后对每个分组执行聚合函数,如SUM、AVG、COUNT等。
以下是一个基本的例子:
sql SELECT column1, column2, COUNT(*) FROM table_name GROUP BY column1, column2;在这个例子中,我们假设有一个名为"table_name"的表,其中包含"column1"和"column2"两列。我们想要计算每个分组(即"column1"和"column2"的值相同的所有行)的数量。
要将查询结果分组并行展示,可以使用以下的MySQL 8.0版本中的"GROUP BY"子句:
sql SELECT column1, column2, COUNT(*) FROM table_name GROUP BY column1, column2 ORDER BY column1, column2;在这个例子中,我们使用了"ORDER BY column1, column2"子句来对结果进行排序,以便每个分组的结果在同一行上并行显示。我们使用了"GROUP BY column1, column2"子句来指定要分组的列,以及"COUNT(*)"子句来计算每个分组的数量。
注意:在MySQL 8.0版本中,"GROUP BY"子句的参数现在是可选的。如果省略了参数,MySQL 8.0默认将结果按照列的值进行分组。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

