使用SQL创建indvidual列

时间:2017-03-04 12:33:27

标签: sql dashdb

我是sql的新手,对这个包非常新手。 SQL在Watson DashDB中运行。在过去的几个小时里,我一直在努力寻找正确的代码。

  • 代码正试图完成一些事情。
    1. 创建名为SENTIMENT的新视图
    2. 加入两张桌子
    3. 让新表格显示4个列,其中包含A. USER_SCREEN_NAME,B。总推文,C。积极的情感计数D.否定的情感计数

下面的代码只创建了2列,我需要4. SPACEX_SENTIMENTS.SENTIMENT_POLARITY包含Negative和Positive。

CREATE VIEW SENTIMENT
AS
(SELECT SPACEX_TWEETS.USER_SCREEN_NAME, SPACEX_SENTIMENTS.SENTIMENT_POLARITY
FROM dash015214.SPACEX_TWEETS
LEFT JOIN dash015214.SPACEX_SENTIMENTS ON 
SPACEX_TWEETS.MESSAGE_ID=SPACEX_SENTIMENTS.MESSAGE_ID);

SELECT USER_SCREEN_NAME, COUNT(1) tweetsCount
FROM dash015214.SENTIMENT
GROUP BY USER_SCREEN_NAME
HAVING COUNT (1)>1
ORDER BY COUNT (USER_SCREEN_NAME) DESC
FETCH FIRST 20 ROWS ONLY;

1 个答案:

答案 0 :(得分:1)

看起来您的视图SENTIMENT每条推文有一行,有两列:用户名,然后是极性列。从您的评论中,我假设极性列可以具有“正极”和“正极”的值。或者' NEGATIVE'。我想你可以通过这个查询得到你想要的东西:

SELECT 
    USER_SCREEN_NAME, 
    COUNT(1) AS "Total Tweets",
    COUNT(CASE SENTIMENT_POLARITY WHEN 'POSITIVE' THEN 1 ELSE NULL END) AS "Positive Tweets",
    COUNT(CASE SENTIMENT_POLARITY WHEN 'NEGATIVE' THEN 1 ELSE NULL END) AS "Negative Tweets"
FROM 
    SENTIMENT
GROUP BY USER_SCREEN_NAME
HAVING COUNT(1) > 1
ORDER BY COUNT(1) DESC;

这将为每个人提供至少2条推文(这是你想要的吗?),并告诉你每个用户的推文数量以及有多少是积极的,有多少是否定的。将"替换为SQL用于指示列名称的任何内容。