【发布时间】:2019-05-04 02:44:26
【问题描述】:
我是 Cassandra 的新手,我正在尝试更多地了解这个数据库引擎的工作原理(特别是 CQL 部分)并将其与 Mysql 进行比较。
考虑到这一点,我尝试了一些查询,但有一个特定的查询我无法弄清楚。 从我能读到的接缝来看,不可能在 Cassandra 中执行此查询,但我想确定是否有一些解决方法。
想象下表 [Customer] 的 PRIMARY_KEY = id:
id, name, city, country, email
01, Jhon, NY, USA, jhon@
02, Mary, DC, USA, mary@
03, Smith, L, UK, smith@
.....
我想获得一份清单,显示我在每个国家/地区拥有多少客户并按 DESC 排序。
在 mySQL 中会类似于
SELECT COUNT(Id), country
FROM customer
GROUP BY country
ORDER BY COUNT(Id) DESC
但在 Cassandra (CQL) 中,我似乎无法对不是 PRIMARY_KEY 的列进行 GROUP BY (例如 "country" 的情况),无论如何都围绕着这个???
【问题讨论】:
-
虽然 CQL 类似于 SQL,但它不一样...要执行聚合、排序等操作,您需要以正确的方式对表进行建模。我建议参加有关 Cassandra 数据建模的 DS220 课程:academy.datastax.com/resources/ds220