首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Teradata默认列表

Teradata默认列表
EN

Stack Overflow用户
提问于 2011-09-28 20:26:38
回答 1查看 165关注 0票数 0

这里有一个表格,其中包含我需要的金额和状态。但是,此表包含年份信息,但我想要月份。例如,在表格中,它显示了肯塔基州的信息,2011..and就是它。对于加利福尼亚,它显示了大约5个不同的年份。但我需要一个月一个月地重复。

因此,如果2011年肯塔基州有12个总数,那么我需要一个查询来显示1月、2月、May....repeatedly的12个数据

现在,我用一个哑巴查询得到了这个输出:

代码语言:javascript
复制
Kentucky  12   January
California 800 January

通过按州、数量和月份分组,很容易做到这一点

我想要确保无论数量是多少,每个州都有所有月份

代码语言:javascript
复制
Kentucky  12   January
Kentucky  12   February
Kentucky  12   May
California 800 January
California 800 February
California 800 May

你有关于如何使用Teradata SQL做到这一点的想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-30 07:28:08

整个查询如下所示:

代码语言:javascript
复制
SELECT
  state_quantities.state,
  state_quantities.quantity,
  all_months.month_name
FROM state_quantities
CROSS JOIN (
  ...
) all_months

all_months括号之间的内容取决于您所说的“所有月份”是什么意思。

如果你指的是state_quantities中出现的所有月份,而不是州(所以如果你有肯塔基州是1月份,加利福尼亚州是2月份,佛罗里达州是5月份,你只会得到这三个月),你可以使用这样的内容:

代码语言:javascript
复制
SELECT
  month_name
FROM state_quantities
GROUP BY month_name

如果您想要所有12个月,您可以连接到一个包含所有12个月的表。如果没有,你可以使用sys_calendar.calendar (下面的语法可能是关闭的):

代码语言:javascript
复制
SELECT
  CAST(calendar_date AS DATE FORMAT 'MMM') AS month_name
FROM sys_calendar.calendar
GROUP BY month_name
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7583174

复制
相关文章

相似问题

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