一到笔试题,求思路。万分感谢。。

问题描述

这道题是最近参加某公司笔试题目遇到的,小弟sql能力不是很强,所以求查询sql,还有的话,我的思路是用sql过滤出几十万条的数据,然后查询到服务器进行处理,是否还需要多线程来进行数据写入呢?某系统根据用户购买数据已经生成了同时购买同一类别下两个产品的数据,现需要使用该数据,生成同时购买同一类别下三个产品的数据,请设计并简要实现:说明:1、表结构如下:create table purchasetogether ( ProductId1 varchar(50) not null, ProductId2 varchar(50) not null, CategoryId int(10) not null, CustomerCount int(10) not null, CustomerIds text not null, primary key (ProductId1, ProductId2), key CategoryId (CategoryId));create table multipurchasetogether ( ProductId1 varchar(50) not null, ProductId2 varchar(50) not null, ProductId3 varchar(50) not null, CategoryId int(10) not null, CustomerCount int(10) not null, CustomerIds text not null, primary key (ProductId1, ProductId2, ProductId3), key CategoryId (CategoryId)); ProductId1: 同时购买的第一个产品id,已有数据已经保证ProductId1 < ProductId2 ProductId2: 同时购买的第二个产品id CategoryId: 产品类别id CustomerCount: 同时购买ProductId1和ProductId2的用户数量 CustomerIds: 同时购买ProductId1和ProductId2的所有用户id列表,用户id间以逗号分隔2、该表的数据量为千万或者上亿级,处理时需要按照每个产品类别(Category)进行,单个类别的数据量可能会达到百万级。设计和实现时可以只考虑处理配置的单个类别。3、生成的数据放入multipurchasetogether表,表结构与purchasetogether类似,并且需要保证ProductId1<ProductId2<ProductId3。

解决方案

实际分析: 表multipurchasetogether中的数据肯定是从purchasetogether表中获取的,且由 select a.p1,a.p2,b.p2 as p3 from purchasetogether as ajoin purchasetogether as b on b.p1=a.p1 and a.CategoryId=b.CategoryId and a.p2!=b.p2
解决方案二:
看着很迷糊,建议先把情况说清楚一些吧。
解决方案三:
你这个题描述的不是很清楚,如果题本身就这样,排除是错误或业务根本不对的情况来分析,我按我的理解说一下。根据已有的同时购买同一类2个产品的用户,生成含有同一类的第三个产品的,只能在同时购买同一类2个产品的用户去查询 这些用户中购买这一类第三个产品的用户。得出的就是同时购买同一类3个产品的用户。这样保证了类别、用户的条件筛选。但你这里有个矛盾的问题,ProductId1 < ProductId2,产品1与产品2都为字符类型,你只表明为产品id,那么如何满足ProductId1 < ProductId2?同理ProductId1<ProductId2<ProductId3。也为矛盾。
解决方案四:
某系统根据用户购买数据已经生成了同时购买同一类别下两个产品的数据,现需要使用该数据,生成同时购买同一类别下三个产品的数据.实在是不知所云。是不是发高烧了?这两个产品的数据怎么生成三个产品的数据?这是什么业务?

时间: 2024-10-28 20:52:47

一到笔试题,求思路。万分感谢。。的相关文章

背包问题 matlab-背包问题Matlab动态规划求解程序报错 求指导 万分感谢!!

问题描述 背包问题Matlab动态规划求解程序报错 求指导 万分感谢!! KnapSack1(v,w,n,W) for w=0 to W V[0,w]=0; %将二维数组第一行赋值全零 for i=1 to n for w=0 to W if w_i<=w V[i,w]=max(V[i-1,w],v_i+V[i-1,w-w_i]) %V[i,w]记录权值至少为w且最大的子集{1,2,...,n} else V[i,w]=V[i-1,w]; Return V[i,W]; end end end e

求大神-eclipse大神求解救 万分感谢

问题描述 eclipse大神求解救 万分感谢 怎么解决 解决方案 貌似jdk有问题,看一下是否有jdk 解决方案二: 没有安装jdk,或者安装jdk版本过低. 解决方案三: 感觉jdk没有安装吧... 解决方案四: 出现你这个问题有两个原因: 1.你没有安装jdk 2.你安装的jdk,但是没有配置环境变量. 解决方案五: 环境变量配置有问题,或者是javaw这个进程

一个分布式处理框架,毫无头绪,求好心人指点一二,给个思路,万分感谢!!!!

问题描述 一个分布式处理框架,毫无头绪,求好心人指点一二,给个思路,万分感谢!!!! 最近接到了一个任务,就是参考谷歌的mapreduce写一个分布式处理框架,要求可以跨机器,就这么点要求,毫无思路...求大神指点

求大神将下面递归算法改为非递归算法,万分感谢

问题描述 求大神将下面递归算法改为非递归算法,万分感谢 public void void processFilePath(String sourceDir) { File file = new File(eachSource); if (file.isDirectory()) { for (File each : file.listFiles()) { processFilePath(each.getAbsolutePath()); } } else if (file.getAbsolutePa

编程语言 c语言-新手求指教!用c语言 简单学生成绩统计软件 。万分感谢,编好发到邮箱425572938@.

问题描述 新手求指教!用c语言 简单学生成绩统计软件 .万分感谢,编好发到邮箱425572938@. 实现的任务: (1)每个学生记录中包含学号.姓名和C 语言课设成绩等信息: (2)创建学生记录链表: (3)更新学生记录(插入.排序.删除): (4)能统计各分数段的人数,并以分布图显示: (5)输出学生记录到屏幕. 设计内容: 1. 学生记录应该包括学号.姓名.C 语言课设成绩等信息,是本程序的核心数据结构,定 义如下: typedef struct { char num[11]; /*学号*

java代码-望大神帮分析下,最好是把该代码的思路给分析讲解下,虽没有分但万分感谢!

问题描述 望大神帮分析下,最好是把该代码的思路给分析讲解下,虽没有分但万分感谢! import java.math.BigDecimal; public class NumToRMB { public static void main(String[] args) { System.out.println(changeToBig(Double.parseDouble(args[0]))); } public static String changeToBig(double value) { ch

代码分析-一道Java笔试题,求解答(关于类的加载与初始化)

问题描述 一道Java笔试题,求解答(关于类的加载与初始化) 自己查了一些资料,还是看不懂这个程序的输出结果,求各位详细解释初始化和执行过程,谢! public class Alibaba { public static int k = 0; public static Alibaba t1 = new Alibaba("t1"); public static Alibaba t2 = new Alibaba("t2"); public static int i =

javaee hibernate-求助avaee hibernate 项目控制台报错 求帮忙分析下,万分感谢!!

问题描述 求助avaee hibernate 项目控制台报错 求帮忙分析下,万分感谢!! 出现异常时间: [2013年8月9日 15:15:32] org.hibernate.HibernateException: Already disconnectedat com.hiaward.common.util.HibernateUtil.rollbackTransaction(HibernateUtil.java:175) at com.hiaward.common.util.HibernateU

求大神看下边json数据是不是有问题,万分感谢!!!

问题描述 求大神看下边json数据是不是有问题,万分感谢!!! http://a.yx.minfuzx.com/zhinan/0/1 不要用工具格式化.... 解决方案 你是客户端json类库用还是服务器端反序列用的?客户端json类库多那个逗号除非用IE7-浏览器,其他浏览器多那个逗号也没有问题. 直接replace掉就行, ] } } ==>] } } 如果存在多个,需要用正则 s*,\s*] ==> ] 解决方案二: 最后的"http://m.yxjiakao.com/zhin

java容器 collection-下面这个小程序打印出的为什么是true和false啊,求大神分析一下,万分感谢~

问题描述 下面这个小程序打印出的为什么是true和false啊,求大神分析一下,万分感谢~ public class BasicContainer { public static void main(String[] args) { Collection c = new HashSet(); c.add("hello"); c.add(new Name("lu","dongdong")); c.add(new Integer(100)); Sys