MYSQL - 1列中的多个所有数据在同一列中具有最大值

Posted

技术标签:

【中文标题】MYSQL - 1列中的多个所有数据在同一列中具有最大值【英文标题】:MYSQL - Multiple all data in 1 column with max value in the same column 【发布时间】:2018-05-02 07:01:12 【问题描述】:

我在标准表中有这样的数据:

+----+
| c1 |
+----+
| 1  |
| 2  |
| 3  |
| 4  |
| 5  |
+----+

我想要的只是将c1中的所有数据与c1列中的最大值相乘,所以它变成:

1x5
2x5
3x5
4x5
5x5

结果应该是这样的:

+--------+
| new c1 |
+--------+
| 5      |
| 10     |
| 15     |
| 20     |
| 25     |
+--------+

那么,我应该写什么查询?

【问题讨论】:

【参考方案1】:

你可以试试这个

SELECT (xx.columnName * xx.max_val) AS 'expected_result' FROM (SELECT MAX(columnName) AS max_val,myTable.columnName FROM myTable)xx

【讨论】:

【参考方案2】:

你可以使用:

SELECT t.m * c1 
FROM MyTable, 
(SELECT max(c1) as m from MyTable) t

demo

【讨论】:

谢谢,但它不适用于 phpMyAdmin。你能帮我解决另一个问题吗? @YCF_L 你的回答很好,我只需要更新我的 phpmyadmin :)【参考方案3】:

您可以在计算最大值的子查询上使用交叉连接

 select a.c1*t.max_c1
 from my_table  a
 cross  join (
  select max(c1)  as max_c1
  from my_table 
 ) t

【讨论】:

以上是关于MYSQL - 1列中的多个所有数据在同一列中具有最大值的主要内容,如果未能解决你的问题,请参考以下文章

同时写入同一列中DataGridView的多个单元格

与同一列中的多个值进行比较?

将具有多个 char(13) 换行符的列中的数据分离到它们自己的列中

如何更改同一列中的多个日期格式?

mysql查询显示一个ID列中的多个表

如何将具有数据的单元格与同一列中的空白单元格合并?