mysql - 如何在 mysql 中正确设置 MIN 和 MAX?
问题描述
我有以下查询:
SELECT DISTINCT
MIN(re1.name, re2.name) AS name1,
MAX(re1.name, re2.name) AS name2
FROM Rating ra1 JOIN Reviewer re1
ON re1.rID = ra1.rID
CROSS JOIN
Reviewer re2 JOIN Rating ra2 ON re2.rID = ra2.rID
WHERE ra1.mID = ra2.mID
AND re1.rID != re2.rID
AND re1.rID > re2.rID
ORDER BY name1, name2;
当我在当前使用的学习平台(使用 sqlite)中运行查询时,它会按字母顺序计算耦合名称列表。
但是,如果我在 x86_64 上使用 mysql Ver 8.0.26 for Linux 在 vscode 中运行相同的查询,则会收到以下错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 ', re2.name) AS name1, MAX(re1.name, re2.name) AS name2 FROM Rating ra1' 附近使用正确的语法
mysql中的MIN MAX使用方式不同吗?如何使用 mysql 运行相同的查询?
谢谢
解决方案
MAX()
用于检查同一列,跨多行聚合。我想你想要这个GREATEST()
功能。
推荐阅读
- c# - 当我从列表中选择某些内容时,如何使组件消失?
- haskell - 你能在 Haskell 类型签名中编写参数化类型吗?
- c - Luhn 的校验和算法在 C 中的解决方案
- reactjs - 如何使用 Firebase Auth 的 useEffect 清理功能取消所有订阅和异步任务
- java - 如何在java(Android)中将对象(在这种情况下为数组列表)从一个片段发送到另一个片段
- r - ggplot facet 中缺少 2D 密度层
- powerbi - Dax 函数 DATESINPERIOD 未给出正确答案
- css - 如何通过css缩小图像?
- vulkan - VkSubpassDependency 规范说明
- javascript - 从函数返回到绑定的Angular模板文字中的换行符?