Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于mysql中的最高值整合输出_Mysql - Fatal编程技术网

如何基于mysql中的最高值整合输出

如何基于mysql中的最高值整合输出,mysql,Mysql,我有以下输入,其中用户以以下百分比(25或50或75或100)观看节目。我只想计算某个用户在某个id上观看的最高百分比。 下面给出了输入和输出 输入 期望输出 id1, u1, watched100 id2, u1, watched50 id3, u1, watched25 id5, u1, watched25 id5, u1, watched100 id1, u2, watched75 id3, u2, watched25 id3, u3, watched25 id4, u3, watched

我有以下输入,其中用户以以下百分比(25或50或75或100)观看节目。我只想计算某个用户在某个id上观看的最高百分比。 下面给出了输入和输出

输入

期望输出

id1, u1, watched100
id2, u1, watched50
id3, u1, watched25
id5, u1, watched25
id5, u1, watched100
id1, u2, watched75
id3, u2, watched25
id3, u3, watched25
id4, u3, watched50
我建议您将“watchedXX”改为“XX”,以便于计算。我上面的问题是基于这个假设的

我建议您将“watchedXX”改为“XX”,以便于计算。我的上述查询基于此假设

查询:

SELECT t1.id1, 
       t1.u1, 
       MAX(CAST(REPLACE(t1.watched25, 'watched', '') AS SIGNED)) as watched
FROM Table1 t1
GROUP BY t1.id1, t1.u1
结果:

| ID1 | U1 | WATCHED |
----------------------
| id1 | u1 |     100 |
| id1 | u2 |      75 |
| id2 | u1 |      50 |
| id3 | u1 |      25 |
| id3 | u2 |      25 |
| id3 | u3 |      25 |
| id4 | u1 |      25 |
| id4 | u3 |      50 |
| id5 | u1 |     100 |
所需的输出查询:

SELECT t1.id1, 
       t1.u1, 
       CONCAT('watched',MAX(CAST(REPLACE(t1.watched25, 'watched', '') AS SIGNED))) as watched
FROM Table1 t1
GROUP BY t1.id1, t1.u1
结果期望输出:

| ID1 | U1 |    WATCHED |
-------------------------
| id1 | u1 | watched100 |
| id1 | u2 |  watched75 |
| id2 | u1 |  watched50 |
| id3 | u1 |  watched25 |
| id3 | u2 |  watched25 |
| id3 | u3 |  watched25 |
| id4 | u1 |  watched25 |
| id4 | u3 |  watched50 |
| id5 | u1 | watched100 |
查询:

SELECT t1.id1, 
       t1.u1, 
       MAX(CAST(REPLACE(t1.watched25, 'watched', '') AS SIGNED)) as watched
FROM Table1 t1
GROUP BY t1.id1, t1.u1
结果:

| ID1 | U1 | WATCHED |
----------------------
| id1 | u1 |     100 |
| id1 | u2 |      75 |
| id2 | u1 |      50 |
| id3 | u1 |      25 |
| id3 | u2 |      25 |
| id3 | u3 |      25 |
| id4 | u1 |      25 |
| id4 | u3 |      50 |
| id5 | u1 |     100 |
所需的输出查询:

SELECT t1.id1, 
       t1.u1, 
       CONCAT('watched',MAX(CAST(REPLACE(t1.watched25, 'watched', '') AS SIGNED))) as watched
FROM Table1 t1
GROUP BY t1.id1, t1.u1
结果期望输出:

| ID1 | U1 |    WATCHED |
-------------------------
| id1 | u1 | watched100 |
| id1 | u2 |  watched75 |
| id2 | u1 |  watched50 |
| id3 | u1 |  watched25 |
| id3 | u2 |  watched25 |
| id3 | u3 |  watched25 |
| id4 | u1 |  watched25 |
| id4 | u3 |  watched50 |
| id5 | u1 | watched100 |