在cassandra中创建表订货人

0sgqnhkj  于 2021-06-09  发布在  Cassandra
关注(0)|答案(1)|浏览(370)

我正在创建一个包含以下列的表:
作记号
课程名称
大学
学号
支付的价格
这张表应该按标记排序。它应该在cassandra中完成,我必须实现以下两个查询:

select Student_ID, Course_Name from table where mark='A'

select Student_ID, max(Price_Paid) from table group by student_id

我尝试按以下方式定义表,但对第二个查询无效:

CREATE TABLE table_students(
  Course Name text,
  Price Paid int, 
  nombre_profesor text, 
  id_estudiante int, 
  Mark text, 
primary key(Mark, Price Paid, Course Name, Student_ID));

第一个查询可以工作,但是当我尝试运行第二个查询时,会出现一条消息,指示支付的价格不应在student\u id出现之前。如果我在两者之间切换顺序,则表的排序不正确。
我非常感谢你的支持

q5lcpyga

q5lcpyga1#

不要试图用一个表来完成它-Cassandra的数据建模规则说-一个查询,一个表。所以如果你想通过 student_id ,您需要将其作为分区键。创建一个主键如下的表 (student_id, course_name) .
我建议阅读这本免费书(Cassandra)的第一章。最终指南,第3版)
p、 还有,有 Mark 由于分区键不是很好,所以可能的值太少,所以大分区的数量非常有限。取而代之的是,你可以给它添加一些东西,比如,年份,或者类似于。。。

相关问题