【问题标题】:SQL QUERY HELP — Count the frequency of associated values given an input valueSQL QUERY HELP — 计算给定输入值的关联值的频率
【发布时间】:2021-04-11 13:21:40
【问题描述】:

[帮助]

大家好,

我有这个包含以下列的表格:

id textID value
1 1 Hedonic
2 1 Negative feelings
3 2 Hedonic
4 2 Negative feelings
5 2 Fun
6 2 Motivation
7 3 Enjoy
8 3 Hedonic
9 3 Fun
10 4 Negative feelings
11 4 Pain

我想要做的是返回与给定输入值关联的值的频率。

例如,给定值“Hedonic”,我想返回存在“hedonic”的关联值的计数。 使用上表中的数据,它应该返回下表,用于输入“Hedonic”:

value count
Hedonic 3
Negative feelings 2
Fun 2
Enjoy 1
Motivation 1

谁能帮帮我?

我不知道如何执行 SQL 查询...我尝试了几种方法,但仍然没有成功。

非常感谢

【问题讨论】:

    标签: sql database postgresql


    【解决方案1】:

    一种方法使用exists

    select value, count(*)
    from t
    where exists (select 1
                  from t t2
                  where t2.textid = t.textid and t2.value = 'Hedonic'
                 )
    group by value;
    

    【讨论】:

    • 谢谢,它有效!如果没有t2.value = 'Hedonic',还有另一种方法吗?
    • @RenatoSantos 。 . . “例如,给定值'Hedonic',我想返回存在'hedonic'的相关值的计数。”这就是你在这里问的问题。如果您有其他问题,请提出新问题。
    • 你是对的。我的问题是在元数据库上使用这个 SQL 查询。我想使用字段过滤器来代替t2.values='value'。执行此操作的元数据库的语法是:{{value}},允许过滤选定的值... {{value}} 正在映射数据库的列,其中所有值(享乐,乐趣,动机,... )。在普通 SQL 中,它作为select value, count(*) from t where {{value}} group by value; 工作,考虑到列中每个值的存在计数......但这不是我想要做的......我希望我已经理解,如果有可能给我帮助我将不胜感激
    • 如果我用{{value}} 替换t2.value = 'Hedonic',它会给我我在上一条评论中所说的计数......而不是我想要的表格。我认为它假定表格 annotation 而不是 a2 @GordonLinoff
    猜你喜欢
    • 2021-06-11
    • 2020-09-06
    • 2021-09-02
    • 1970-01-01
    • 2021-01-30
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多