Mysql语句——根据某一列的值来统计数据

根据某一列的值——每一种值下的数据条数

例如,下面sql在统计:当 choose=1 时的数据条数 num_a,当 choose=2 时的数据条数 num_b

SELECT COUNT(case when choose = 1 then 0 end) as num_a,
COUNT(case when choose = 2 then 0 end) as num_b
FROM user_choose 
WHERE  ( datastatus = '1' ) 
AND ( classification_id = '5' ) ;

查询结果如下:
在这里插入图片描述

先按某一列分组——再统计某一列值不同情况下的数据条数

统计:每种classification_id 的choose=1 时的条数 num_c 与 choose=2 时的数据条数 num_d

SELECT classification_id,COUNT(choose  = 1 OR NULL) AS num_c,
COUNT(choose  = 2 OR NULL) AS num_d 
FROM user_choose 
WHERE  ( datastatus = '1' ) 
GROUP BY classification_id ;

查询结果如下:
在这里插入图片描述

以上sql语句非常有利于各种统计数据的生成,以此记录。

### 如何在 MySQL 中插入数据 #### 使用 `INSERT INTO` 语句插入单条记录 为了向表中添加新记录,可以使用 `INSERT INTO` 语句。此语句允许指定要插入的字段以及对应的。 ```sql INSERT INTO table_name (column1, column2, ..., columnN) VALUES (value1, value2, ..., valueN); ``` 例如,假设有一个名为 `employees` 的表,其中包含三列:`id`, `name`, 和 `position`。那么可以通过如下方式来插入一条新的员工记录[^4]: ```sql INSERT INTO employees (id, name, position) VALUES (1, 'Alice', 'Developer'); ``` #### 批量插入多条记录 当需要一次性插入多个记录时,可以在同一个 `INSERT INTO` 语句内列举所有的集,每组之间用逗号隔开。 ```sql INSERT INTO employees (id, name, position) VALUES (2, 'Bob', 'Designer'), (3, 'Charlie', 'Manager'); ``` 这将有效地减少与数据库服务器之间的通信次数,从而提高性能和效率[^1]。 #### 处理重复键的情况 对于某些场景下可能存在的唯一性冲突问题(比如主键或唯一索引),MySQL 提供了一种简洁的方法——`ON DUPLICATE KEY UPDATE` 子句。该子句使得能够在发生重复键错误的情况下自动更新已有的行而不是抛出异常。 ```sql INSERT INTO employees (id, name, position) VALUES (1, 'David', 'Analyst') ON DUPLICATE KEY UPDATE name=VALUES(name), position=VALUES(position); ``` 上述例子表示如果尝试插入具有相同 ID 的记录,则会更新现有的名字和职位信息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值