2017-03-04 91 views
1

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

  • 该代码试图完成一些事情。
    1. 创建一个名为景气
    2. 加入两个表一起
    3. 有新的表展4列与A USER_SCREEN_NAME新的观点,总B.鸣叫,C.模型正SENTIMENT计数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; 
+0

编辑您的问题,并提供样本数据和预期结果。了解数据是什么以及想要生成什么是最好的开始。 –

回答

1

它看起来像你的观点SENTIMENT具有每鸣叫一行,两列:用户名,然后极性色谱柱。从您的评论中,我认为极性列可以具有'正面'或'负面'的值。我认为你可以得到你想要的这个查询的内容:

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。