筛选数据库值

emeijp43  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(304)

我有一张像下面这样的table

|-----|-----|--------|
  | 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          |        
  |---------------------|------------------|---------------------|

i、 e如果num table中的两个不同的值具有相同的id,那么它们的数量将被相加并除以3,其他值将被丢弃。如何使用mysql实现这个目标??

tct7dpnv

tct7dpnv1#

我想这个查询可以满足你的要求。它检查具有多个不同值的id值 num 并显示 SUM 他们的数量除以3。我放了一个 GROUP_CONCATnum 以便输出包含一个 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

sqlfiddle公司

相关问题