我有一个这样的表:
Date Sales Department Store
02/01/2012 4.09 Toys A
03/01/2012 5.90 Toys A
02/01/2012 6.64 Toys B
03/01/2012 4.71 Toys B
02/01/2012 16.72 Toys C
03/01/2012 1.37 Toys C
02/01/2012 13.22 Movies A
03/01/2012 18.06 Movies A
02/01/2012 5.97 Movies B
03/01/2012 16.71 Movies B
02/01/2012 15.38 Movies C
03/01/2012 19.75 Movies C
并想要一个这样的表,其中仅考虑商店A和B:
Date Toys Movies
02/01/2012 10.73 19.19
03/01/2012 10.61 34.77
这是我们将在EXCEL中使用的SUMIFS函数:
=SUMIFS(Value;Date;$H4;Department;I$3;Store;"<>C")
我们可以用SQL编写什么?
考虑到这是一个简短的例子,数据库表有30多个部门和更多的日期。我正在使用脚本
SELECT DISTINCT Date,
ISNULL(MAX(CASE WHEN Department = 'Toys' AND Store = 'A' THEN Sales END),0) +
ISNULL(MAX(CASE WHEN Department = 'Toys' AND Store = 'B' THEN Sales END),0) [Toys],
ISNULL(MAX(CASE WHEN Department = 'Movies' AND Store = 'A' THEN Sales END),0) +
ISNULL(MAX(CASE WHEN Department = 'Movies' AND Store = 'B' THEN Sales END),0) [Movies]
FROM Table$
GROUP BY Date
ORDER BY Date
…但是效率不高。感谢您的提示。
您的查询还可以,但可以进行一些改进:
SELEC Date,
MAX(CASE WHEN Department = 'Toys' THEN Sales else 0 END) as [Toys],
MAX(CASE WHEN Department = 'Movies' THEN Sales else 0 END) as [Movies]
FROM Table$
WHERE store in ('A', 'B')
GROUP BY Date
ORDER BY Date;
这将删除distinct
,而对于则不需要group by
。它将条件store
移到该where
子句上,因为它适用于所有行。并且,它ISNULL()
通过else 0
在case
语句中包括来删除,因此该部门中没有销售的商店将返回0
而不是NULL
。
问题内容: 我正在根据CS50的网络系列创建一个应用程序,该程序要求我仅使用原始SQL查询而不是ORM。 我正在尝试提供一个搜索功能,用户可以在其中查找存储在数据库中的书籍列表。我想让他们查询名为“ books”的表格中的ISBN,标题,作者列 目前,它确实拍摄了“ GET”请求,没有问题,但是它没有返回任何数据,我认为问题出在我编写的SQL行中。 这是路线: 这是我的模板 任何人都可以发现问题吗
问题内容: 我有此查询,它运行良好 从此查询中,我从我的位置(这是我的第一张表)中选择所有3 KM的餐厅。 但是我需要从3Km中的食品接头中选择AVG等级。 该查询也运行完美: 但是我需要添加这两个查询,通过它们我可以选择所有那些食品接头及其等级AVG。 问题答案: 只需放置子查询,您将得到结果:
需求:实现一个功能,有多个span标签,内容为用户名,点击span标签,使其以tag的形式出现在一个contentEditable为true的div中,并且tag有背景色和4px的padding,tag不可编辑,当鼠标在div有焦点,则在当前焦点处插入tag,否则将tag加在最后面。 各位有什么实现方案吗 技术:在vue项目中。不要库。原生js实现
问题内容: 我有一个ajax调用,需要返回一个promise。功能如下 在执行下一个动作之前,我必须等待该功能执行。我该如何保证这个功能? 我尝试了以下操作,它给了我一个错误,说: 问题答案: 您有错误,因为它不是Promise。承诺异步功能非常容易(如今,nodejs具有内置的Promise支持):
我有3个表作为学生数据,包括学生的数据,科目表的数据提供的所有科目和分数,学生获得的每一个科目的分数。通过StudentId标记到StudentData表的表映射,通过SubjectId标记到Subjects表的表映射 我想做的是选择每个科目的最高分数和学生的名字,如下所示 所以我写了一个甲骨文PL / SQL查询如下, 但它只给出了一个结果。请帮助我开发一个查询来获取我的预期结果集。
问题内容: 实际上,我有一个SQL查询可以很好地与数据库一起运行。但是,我的问题是我想在查询中编写该查询。 我的SQL查询是 我希望它由hibernate模板执行。 如何将其转换为查询? 问题答案: 如果要使用查询,则下面是hibernate查询的示例,但是在您的情况下,我们需要映射文件以查看实体之间的关联。希望下面的查询对您有所帮助。 要么