2 u013572569 u013572569 于 2015.07.23 18:17 提问

C++如何实现多列数据筛选?

请教下各位高手,SQL中group by 功能用C++如何实现啊?
小弟想做的是多列数据筛选的功能,比如一个结构体中包含成员A,B,C,从一个结构体数组中筛选出A,B,C不完全相同的数据,非常谢谢!

5个回答

CSDNXIAON
CSDNXIAON   2015.07.23 18:20

JSTL版的数据多列显示
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

oyljerry
oyljerry   Ds   Rxr 2015.07.23 18:47

把结构体放到一个std list中,然后遍历list,获取对应字段,基于A,B,C分别再放到不同的3个list中,这样就group出来了

u013572569
u013572569 OK,谢谢你的指点,我试下!
2 年多之前 回复
oyljerry
oyljerry 回复andy当我遇上你: 你这个还是可以用kist过滤,只不过多加一些判断条件
2 年多之前 回复
u013572569
u013572569 回复oyljerry:比如: struct student stu[5] = {{0,25,2},{0,24,2},{1,25,2},{1,25,2},{1,25,3}}; ;}我想同时group by(sex,age,class)三个字段,这样SQL group by出来的只得到4个结构体{0,25,2},{0,24,2},{1,25,2},{1,25,3},能实现这样的效果吗?
2 年多之前 回复
u013572569
u013572569 回复oyljerry: 这样好像只能group单个成员 struct student { int sex; int age; int class; }; void main() { struct student stu[5];}我想同时group by(sex,age,class)三个字段,刚才发两条按错了,以这个为准!!谢谢
2 年多之前 回复
u013572569
u013572569 回复oyljerry: 这样好像只能group单个成员 struct student { int sex; int age; int class; float score1,score2,sum,average; }; void main() { struct student stu[5];
2 年多之前 回复
u013572569
u013572569 回复oyljerry: 这样好像只能group单个成员 struct student { int sex; int age; int class; float score1,score2,sum,average; }; void main() { struct student stu[5];
2 年多之前 回复
oyljerry
oyljerry 回复andy当我遇上你: 放到不同的list,这样就达到了group的目的,A的就可以只用遍历A那个list
2 年多之前 回复
u013572569
u013572569 嗯,谢谢你的回答,基于A,B,C分别再放到不同的3个list中,这个不太明白 ,可以详细一些吗,谢谢啦
2 年多之前 回复
strutce
strutce   Ds   Rxr 2015.07.23 20:44

for(int i=0;i<总数据list;i++){
if(A==list.get(i)){
listA.add{list.get(i)}
}
if(B==list.get(i)){
listB.add{list.get(i)}
}
if(C==list.get(i)){
listC.add{list.get(i)}
}
}

u013572569
u013572569 谢谢,我想实现的是 比如: struct student { int sex; int age; int class; }; struct student stu[5] = {{0,25,2},{0,24,2},{1,25,2},{1,25,2},{1,25,3}}; ;}我想同时group by(sex,age,class)三个字段,这样SQL group by出来的只得到4个结构体{0,25,2},{0,24,2},{1,25,2},{1,25,3},(注:{1,25.2} 重复了,所在只取中一个),能实现这样的效果吗?
2 年多之前 回复
linyang24
linyang24   2015.07.24 14:47

for(int i=0;i<总数据list;i++){
if(A==list.get(i)){
listA.add{list.get(i)}
}
if(B==list.get(i)){
listB.add{list.get(i)}
}
if(C==list.get(i)){
listC.add{list.get(i)}
}
}

u013572569
u013572569   2015.07.24 22:56

自顶一下!小弟想实现的是 比如: struct student { int sex; int age; int class; }; struct student stu[5] = {{0,25,2},{0,24,2},{1,25,2},{1,25,2},{1,25,3}}; ;}我想同时group by(sex,age,class)三个字段,这样SQL group by出来的只得到4个结构体{0,25,2},{0,24,2},{1,25,2},{1,25,3},(注:{1,25.2} 重复了,所在只取中一个)

Csdn user default icon
上传中...
上传图片
插入图片