【发布时间】:2012-04-02 17:41:42
【问题描述】:
我有一个键值对的数据结构,我想实现“GROUP BY”值。 键和值都是字符串。
所以我所做的就是给每个值(字符串)一个唯一的“素数”。然后对于每个键,我存储了与特定键具有的不同值相关联的所有素数的乘法。 因此,如果键“Anirudh”具有值“x”、“y”、“z”,那么我也存储数字 M(Key) = 2*3*5 = 30。 稍后,如果我想按特定值“x”(比如说)进行分组,那么我只需遍历所有键,然后将 M(键)除以与“x”关联的素数。然后我检查余数是否为 0,如果为零,则该特定“键”是值“x”的 group by 的一部分。
我知道这是最奇怪的做法。有些人对键值对进行排序(按值排序)。我还可以创建另一个已经按“值”分组的表(哈希表)。所以我想知道比我更好的方法(肯定有很多)。在我的方法中,随着特定键的唯一值数量增加,素数的乘积也会增加(呈指数增长)。
【问题讨论】:
-
这是一个 SQL 问题吗?您有“键/值对的数据结构”。那是数据库表吗?你想要什么样的输出?它与 SQL GROUP BY 有什么不同吗?
-
它实际上不是数据库表。我认为它是一个逻辑数据结构。是的!它与“SQL GROUP BY”相同。所以我正在寻找一种独立于 SQL 提供的解决方案,更具体地说是一种 GROUP BY 算法。
标签: sql database group-by grouping key-value