php - 过滤数据库值
问题描述
我有一张如下表
|-----|-----|--------|
| id | num | amount |
|-----|-----|--------|
| 101 | a | 10 |
| 102 | a | 6 |
| 102 | a | 3 |
| 101 | b | 5 |
| 101 | a | 10 |
| 101 | b | 5 |
|-----|-----|--------|
我要显示的是
|---------------------|------------------|---------------------|
| id | num | amount |
|---------------------|------------------|---------------------|
| 101 | a,b | 5 |
|---------------------|------------------|---------------------|
即,如果 num 表中的两个不同值具有相同的 id,则将它们的数量相加并除以 3,而其他值将被丢弃。我怎样才能使用mysql实现这一点?
解决方案
我认为这个查询会做你想要的。它检查与它们关联的不同值的 id 值num
,并显示SUM
它们的数量除以 3。我已经打开了一个GROUP_CONCAT
,num
以便输出包含不同num
值的列表。
SELECT id, GROUP_CONCAT(DISTINCT num) AS nums, SUM(amount) / 3 AS amount
FROM table1
GROUP BY id
HAVING COUNT(DISTINCT num) > 1
输出:
id nums amount
101 a,b 5
推荐阅读
- javascript - TypeError: Is not a constructor, exporting a class object from another file
- go - Translate numpy digitize function into go
- javascript - how to iterate table dynamically in html using node js
- python - how to only get the increment by 2 index of a list without error?
- ffmpeg - FFmpeg:对于 1 720p 和 1 1080p 视频,我如何将第一个视频放大到 1080p 并在一个命令中将它们堆叠?
- java - 如何在本地保存电子输入框的内容
- togglebutton - Reactivesearch ToggleButton 预期结果
- reactjs - 使用 Auth0-React 的客户端链接帐户
- c# - 在 WPF 页面之间传递值 (C#)
- python - 如何使用 Socket 和 Python 通过 Internet 发送 PyAudio 数据?