在SQL中使用“ having by”后使用“ count”存在问题

时间:2019-01-29 19:51:33

标签: mysql sql

模式:

电影:

[id,标题,发行年份,国家,期限,语言,证书,毛额,预算]

在多少不同的年份发行了200多部电影?

我的查询是

select count(release_year)
from films
group by release_year
having count(title)>200;

预期结果为13。

问题: 我正在

Count
236
203
209
225
221
214
252
238
220
224
226
227
260

我在这里想念什么?

2 个答案:

答案 0 :(得分:0)

如果您想要一个数字,则需要一个子查询:

df_test = pd.DataFrame({'Col1':[1, 2, 3, 4, 5], 'Col2':[3, 4, 5, 6, 7]})

class Test_Class:
    def __init__(self, df):
        self.df = df

    def add_new_col(self, df, column_name): # this function requires a df as parameter
        df[column_name] = 100

obj = Test_Class(df_test)
obj.add_new_col(obj.df, 'NEW_COL')

print (obj.df)
print (df_test)

# Output
   Col1  Col2  NEW_COL
0     1     3      100
1     2     4      100
2     3     5      100
3     4     6      100
4     5     7      100
   Col1  Col2  NEW_COL
0     1     3      100
1     2     4      100
2     3     5      100
3     4     6      100
4     5     7      100

答案 1 :(得分:0)

您可以通过查询年份并计算当年发行的电影来细分,然后计算该结果集中的行数:

with cte as (
    select release_year
    from   films
    having count(title) > 200
)
select count(*)
from cte;

select count(*)
from (
    select release_year
    from   films
    having count(title) > 200
) cte;

您正在做的是按发布年分组,因此每个发布年获得一行,并且每年获得的行数是release_year不为null(count(release_year))的行数