gpt4 book ai didi

mysql - SQL 查询帮助,数据现在显示在 1 列中

转载 作者:行者123 更新时间:2023-11-30 22:08:37 25 4
gpt4 key购买 nike

我在编写 SQL 查询时遇到问题

Sculptor (SRID, SR_FName, SR_LName, SR_DOB) 
Sculpture (SEID, SE_Name, SE_Value, SRID*, SID*)
Model (MID, M_FName, M_LName, M_Salary)

列出雕塑家的姓氏和雕塑总值(value)(作为一个名为“总计”的字段Sculpture Value”)为每位雕塑家雕刻的所有雕塑(四舍五入到小数点后两位),按总值(value)从小到大排序。仅列出雕塑总值(value)低于 10 万的雕塑家。

我的查询是:

SELECT SR_LName,
SE_Value AS TotalSculptureValue
FROM Sculptor
JOIN Sculpture USING (SRID)
HAVING ( SE_Value ) < 100000

最佳答案

您确实需要学习使用聚合函数,但这是它的工作原理:

SELECT SR_LName,
sum(SE_Value) AS "TotalSculptureValue"
FROM Sculptor
JOIN Sculpture USING (SRID)
group by SR_LName

首先尝试运行该查询。您应该会看到所有雕塑家的名字及其值的总和。

然后将 HAVING 添加回去,因为这是限制聚合函数结果的方式:

SELECT SR_LName,
sum(SE_Value) AS "TotalSculptureValue"
FROM Sculptor
JOIN Sculpture USING (SRID)
group by SR_LName
having sum(SE_Value) < 100000

HAVING 不同于 WHERE。如果你想限制非聚合列,比如名字,你可以使用 WHERE:

SELECT SR_LName,
sum(SE_Value) AS "TotalSculptureValue"
FROM Sculptor
JOIN Sculpture USING (SRID)
where SR_LName like '%Ali%'
group by SR_LName
having sum(SE_Value) < 100000

这将为您提供名称中包含 Ali 且总值(value)小于 100000 的所有雕塑家。

关于mysql - SQL 查询帮助,数据现在显示在 1 列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40871384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com