我的表格 struct 如下:

category user_id value
A 1 0.01
A 2 0.05
A 3 0.09
A 4 0.12
B 1 0.34
B 2 0.27
B 3 0.08
B 4 0.12

实际表中还有更多行.这只是一个例子.

I want to make a table that keeps 'category', makes another column 'user_id_type' that labels even and odd, and another new column (value_sum) that sums all of the 'value' based on 'category' and 'user_id_type'.

因此,它将只有四行,包括'A'奇数'和总和,'A'偶数'和总和,'B'奇数'和总和,'B'偶数'和总和.

I want it to look like this:

category user_id_type value_sum
A odd 0.10
A even 0.17
B odd 0.42
B even 0.39

模式:

CREATE TABLE table_1 (
  `category` VARCHAR(2),
  `user_id` INT(2), 
  `value` DECIMAL(3,2)
 );
INSERT INTO table_1
(`category`, `user_id`, `value`)
VALUES
('A', 1, 0.01),
('A', 2, 0.05),
('A', 3, 0.09),
('A', 4, 0.12),
('B', 1, 0.34),
('B', 2, 0.27),
('B', 3, 0.08),
('B', 4, 0.12)
;

推荐答案

您可以根据自己的要求创建一个表格,并使用如下 Select 填写此表格:

INSERT INTO table_2
SELECT category, 
CASE WHEN user_id % 2 = 0 THEN 'even' ELSE 'odd' END user_id_type, 
SUM(value) FROM table_1 GROUP BY user_id_type, category ORDER BY category;

请看这里,看看它的工作:fiddle

Mysql相关问答推荐

我需要为用户提供MySQL视图和存储的 routine ,但不是基础表

查询具有JSON对象数组的列时,JSON_CONTAINS的MySQL语法错误

为什么MySQL不同版本的值会变化?

查找表中的唯一记录

在 MYSQL 8 中的 JSON 字段上的 SELECT 中返回所有键及其数组项

Mysql时间序列数据的最小值和最大值

使用sql查找源和最终目的地

如何使用sql查询在日期列中按值和最大值分组的表中添加列?

在 MySQL 中使用非空条件 LAG() 函数

最后一个字母 '%n' 的 mysql SELECT 字符串不起作用

从 mysql RDS 导出数据以导入 questDb

mySQL 中的主数据库和 IF 错误?

插入重复键查询以在每一行上进行自定义更新

更改整数时间到日期格式 MM/DD/YY,如 python 中的 datetime.fromtimestamp

SQL UPDATE中的str_replace?

如何在 MySQL 中删除具有 2 列作为复合主键的多行?

试图获取非对象的属性

PHP PDO 与普通 mysql_connect

MySQL PHP - Select WHERE id = array()?

PHP mySQL - 将新记录插入表中,主键自动递增