首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询帮助,数据现在显示在1列中。

SQL查询帮助,数据现在显示在1列中。
EN

Stack Overflow用户
提问于 2016-11-29 16:52:49
回答 1查看 31关注 0票数 1

在编写SQL查询时,我面临一个问题。

代码语言:javascript
复制
Sculptor (SRID, SR_FName, SR_LName, SR_DOB) 
Sculpture (SEID, SE_Name, SE_Value, SRID*, SID*)
Model (MID, M_FName, M_LName, M_Salary)

列出每个雕刻家所雕刻的所有雕塑(四舍五入至小数位)的所有雕塑的姓氏和总雕塑值(作为一个名为“总雕塑值”的字段),并按总价值排序。只列出雕塑总价值低于10万的雕塑家。

我的问题是:

代码语言:javascript
复制
SELECT SR_LName,
       SE_Value AS TotalSculptureValue
FROM   Sculptor
       JOIN Sculpture USING (SRID)
HAVING ( SE_Value ) < 100000
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-29 17:50:46

您确实需要学习如何使用聚合函数,但下面是这个函数的工作方式:

代码语言:javascript
复制
SELECT SR_LName,
       sum(SE_Value) AS "TotalSculptureValue"
FROM   Sculptor
       JOIN Sculpture USING (SRID)
group by SR_LName

尝试先运行该查询。你应该看到所有雕刻家的名字与他们的价值之和。

然后添加HAVING,因为这是如何限制聚合函数的结果的:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

这会给你所有的雕塑家的名字,其中包含阿里和总价值不到100000。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40871384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档