商城产品销售量排序SQL语句如何写?

zcxverygood123456 2016-08-12 09:25:24
商城产品数据结构:
表一:chanpin ----产品表
x_id ----产品ID
shu -----这个是产品销售量的基数,产品的销售量=这个基数+实际销售量

表二:dingdan ----订单表
d_id -----订单ID
x_id -----产品ID,跟产品表的产品ID关联
===========================================
在前台的产品展示列表,现在要实现按销售量排序?如何写SQL语句?

即:select * from chanpin ORDER BY (产品基数+实际销售量) DESC
...全文
1100 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
超级路灯 2016-08-15
  • 打赏
  • 举报
回复
用一个列来表示订单总数,按总数排序就行了 啊 select x_id,shu ,countshu=(shu+(select count(*) from dingdan as b where b.x_id=a.x_id)) from chanpin as a order by countshu desc 虽然解决了楼主的问题,但楼主的数据设计有问题。你这样系统性能不好,最好是有个销售统计表,记录销售总数,每销售一个+1
秋的红果实 2016-08-13
  • 打赏
  • 举报
回复
引用 13 楼 zcxverygood123456 的回复:
上面我说的是实际销售量的算法, 但最终效果,我要得出 “”产品基数+实际销售量“”,排序要按这个来排序 4#的语句只是实现按实际销售量来排序,这只是局部排序 9#和10#,我只是解释实际销售量的算法而已,但最终不是按实际销售量来排序。 比如,一个产品的ID是100,在“”chanpin ----产品表“”里的产品基数是10,在“”dingdan ----订单表“”里统计出来实际销售量总共是99, 那么这个产品的总销售量就是109, 要列出所有的产品,并按这个总销售量来排序,就这个意思
原来这个shu,一种产品只加一次。稍微改动下1#就是了

 select a.x_id,a.shu+sum(b.实际销售量) as 产品的销售量 from dingdan b left join chanpin  a on a.x_id=b.x_id group by a.x_id order by 产品的销售量 desc

其中“实际销售量”是一次购货数量,例如 dingdan ----订单表 d_id x_id 实际销售量 1 100 20 2 100 30 3 101 50 4 100 10 ---------------------------------
zcxverygood123456 2016-08-13
  • 打赏
  • 举报
回复
上面我说的是实际销售量的算法, 但最终效果,我要得出 “”产品基数+实际销售量“”,排序要按这个来排序 4#的语句只是实现按实际销售量来排序,这只是局部排序 9#和10#,我只是解释实际销售量的算法而已,但最终不是按实际销售量来排序。 比如,一个产品的ID是100,在“”chanpin ----产品表“”里的产品基数是10,在“”dingdan ----订单表“”里统计出来实际销售量总共是99, 那么这个产品的总销售量就是109, 要列出所有的产品,并按这个总销售量来排序,就这个意思
秋的红果实 2016-08-12
  • 打赏
  • 举报
回复


 select a.x_id,sum(a.shu+b.实际销售量) as 产品的销售量,count(*) as 销售数量 from dingdan b left join chanpin  a on a.x_id=b.x_id group by a.x_id order by 销售数量 desc,产品的销售量 desc

排序首先按照“销售数量”倒序排,里面要是有“销售数量”一样的数据,在按照“产品的销售量”倒序排列 当然,将desc改成asc就是升序,可以指定一个是升序,一个是降序 看你的需要了,order by可以跟一个排序字段,销售数量 desc一个,或产品的销售量 desc一个
zcxverygood123456 2016-08-12
  • 打赏
  • 举报
回复
请问: select a.x_id,sum(a.shu+b.实际销售量) as 产品的销售量 from dingdan b left join chanpin a on a.x_id=b.x_id group by a.x_id order by 产品的销售量 desc 这个是计算产品实际销量:SELECT x_id,count(*) as iCount from dingdan group by x_id order by iCount desc ============================================ 这两个语句怎么合成一个呢? 能达到这一的效果,select * from chanpin ORDER BY (产品基数+实际销售量) DESC
秋的红果实 2016-08-12
  • 打赏
  • 举报
回复
SELECT x_id,count(*) as iCount from dingdan group by x_id order by iCount desc
zcxverygood123456 2016-08-12
  • 打赏
  • 举报
回复
实际销售量:我想统计的是订单里面有多少个“”产品ID“”,每个产品ID算一个 SELECT count(*) as iCount from dingdan where x_id='对应的产品ID'
秋的红果实 2016-08-12
  • 打赏
  • 举报
回复
实际销售量,就是你dingdan表里的字段,顾客每次订货的数量
秋的红果实 2016-08-12
  • 打赏
  • 举报
回复

 select a.x_id,sum(a.shu+b.实际销售量) as 产品的销售量 from dingdan b left join chanpin  a on a.x_id=b.x_id group by a.x_id order by 产品的销售量 desc
秋的红果实 2016-08-12
  • 打赏
  • 举报
回复
x_id iCount 100 3 101 1 ----------------------
秋的红果实 2016-08-12
  • 打赏
  • 举报
回复
引用 10 楼 zcxverygood123456 的回复:
dingdan ----订单表 d_id x_id 1 100 2 100 3 101 4 100 --------------------------------- 上面这个x_id=100的有3个,即产品ID的实际销售量是3 产品ID为101的,实际销售量是1
这不就是按照销售个数排序么?就是我4#写的,执行那条sql,结果如下: x_id iCount 100 3 101 1 ---------------------- 这就是你要的效果啊 你可以在管理器执行我4#的语句,验证下就知道了
zcxverygood123456 2016-08-12
  • 打赏
  • 举报
回复
dingdan ----订单表 d_id x_id 1 100 2 100 3 101 4 100 --------------------------------- 上面这个x_id=100的有3个,即产品ID的实际销售量是3 产品ID为101的,实际销售量是1
zcxverygood123456 2016-08-12
  • 打赏
  • 举报
回复
实际销售量,是这样统计的,比如我统计一个产品ID等于100的, SELECT count(*) as iCount from dingdan where x_id='100' 这个产品ID为100的实际销售量= iCount;
秋的红果实 2016-08-12
  • 打赏
  • 举报
回复
实际销售量,是不是在dingdan表里? select * ,*具体包括哪些项目?
zcxverygood123456 2016-08-12
  • 打赏
  • 举报
回复
没达到我想要的效果。 我想要的效果是: select * from chanpin ORDER BY (产品基数+实际销售量) DESC 不知有什么办法可以实现?
内容概要:本文围绕基于Basisformer模型的时间序列锂离子电池SOC(State of Charge,荷电状态)预测展开研究,利用PyTorch框架实现深度学习模型的构建与训练。通过将历史充放电数据作为输入,Basisformer能够有效捕捉电池状态的动态变化特征,提升SOC预测精度。文中详细介绍了模型结构设计、数据预处理流程、训练策略及实验结果分析,并与传统方法进行对比,验证了该方法在复杂工况下的优越性与鲁棒性。该研究不仅展示了Basisformer在时序建模中的潜力,也为电池管理系统提供了高精度的状态估计解决方案。; 适合人群:具备一定Python编程基础和深度学习理论知识,熟悉PyTorch框架,从事电池管理系统、新能源汽车或智能预测方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于电动汽车、储能系统等领域的电池SOC高精度实时估算;②为电池健康管理(BMS)提供可靠的状态输入;③推动深度学习在时间序列预测中的实际落地,提升现有预测模型的泛化能力与稳定性; 阅读建议:建议读者结合标题为【锂电池SOC估计】【PyTorch】基于Basisformer时间序列锂离子电池SOC预测研究(python代码实现)的资源,重点研读所提供的Python代码,深入理解数据处理方式与模型网络结构的设计思路,尝试调整超参数以观察对预测性能的影响,从而全面掌握Basisformer在时序建模中的优势、适用边界及工程化实现路径。

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧