SQL简单查询问题!

zhjian6 2004-06-17 05:55:12
我有一个表
tableA
userid uyear umonth uday



四个字段都是int,用户来记录用户登录用的!

select userid,count(userid) as count2 from temped where umonth=2 group by userid order by userid

这条语句,可以输入2月份,各用户登录的次数!

现在,想2,3,4,5,6 月份一起输入 该如何写?
得到的结果希望是

userid count2(二月) count3(三月) count4(四月) count5(五月) count6(六月)
...全文
177 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2004-06-18
  • 打赏
  • 举报
回复
--建议用连接,效率高一些:

select a.userid,
b.name,
sum(case umonth when 2 then 1 else 0 end) count2,
sum(case umonth when 3 then 1 else 0 end) count3,
sum(case umonth when 4 then 1 else 0 end) count4,
sum(case umonth when 5 then 1 else 0 end) count5,
sum(case umonth when 6 then 1 else 0 end) count6
from temped a join 用户信息表 b on a.userid=id
group by userid,姓名
order by userid
zhjian6 2004-06-18
  • 打赏
  • 举报
回复
谢谢,都是高手!
pbsql 2004-06-18
  • 打赏
  • 举报
回复
select userid,
(select 姓名 from 用户信息表 where ID=temped.userid) name,
sum(case umonth when 2 then 1 else 0 end) count2,
sum(case umonth when 3 then 1 else 0 end) count3,
sum(case umonth when 4 then 1 else 0 end) count4,
sum(case umonth when 5 then 1 else 0 end) count5,
sum(case umonth when 6 then 1 else 0 end) count6
from temped
group by userid order by userid
zhjian6 2004-06-18
  • 打赏
  • 举报
回复
谢谢各位,我用了
select userid,
sum(case umonth when 2 then 1 else 0 end) count2,
sum(case umonth when 3 then 1 else 0 end) count3,
sum(case umonth when 4 then 1 else 0 end) count4,
sum(case umonth when 5 then 1 else 0 end) count5,
sum(case umonth when 6 then 1 else 0 end) count6
from temped
group by userid order by userid
是可以的,但是想加点东西就出错
我另外有个表,是用户信息表,有ID,对应的姓名。
我现在想把输出的ID变成姓名,其它不变改怎么写?
zjcxc 元老 2004-06-17
  • 打赏
  • 举报
回复
--只有6个月,直接写就行啦,即使有12个月,也可以直接写嘛,反正比较固定

select userid
,[2月份]=sum(case umonth when 2 then 1 else 0 end)
,[3月份]=sum(case umonth when 3 then 1 else 0 end)
,[4月份]=sum(case umonth when 4 then 1 else 0 end)
,[5月份]=sum(case umonth when 5 then 1 else 0 end)
,[6月份]=sum(case umonth when 6 then 1 else 0 end)
from tableA
where uyear=2003 --统计那一年
group by userid
order by userid
zanglinfeng 2004-06-17
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
set @sql='select userid'
select @sql = @sql + ',sum(case umonth when ''' + a.umonth + '''then 1 else 0 end) as ' + a.umonth + ' '
from (select distinct umonth from [tableA]) a

set @sql =@sql + 'from [tableA] group by userid'
exec (@sql)


不错,赞同!
frankwong 2004-06-17
  • 打赏
  • 举报
回复
如果你的月份数是确定的话,用“风云”的方法可以,如果月份数不确定,即是列的数量不确定,建议使用一下方法:

declare @sql varchar(8000)
set @sql='select userid'
select @sql = @sql + ',sum(case umonth when ''' + a.umonth + '''then 1 else 0 end) as ' + a.umonth + ' '
from (select distinct umonth from [tableA]) a

set @sql =@sql + 'from [tableA] group by userid'
exec (@sql)
pbsql 2004-06-17
  • 打赏
  • 举报
回复
select userid,
sum(case umonth when 2 then 1 else 0 end) count2,
sum(case umonth when 3 then 1 else 0 end) count3,
sum(case umonth when 4 then 1 else 0 end) count4,
sum(case umonth when 5 then 1 else 0 end) count5,
sum(case umonth when 6 then 1 else 0 end) count6
from temped t
group by userid order by userid
内容概要:本文提出了一种基于非合作博弈理论的居民负荷分层调度模型,并结合双层鲸鱼优化算法(Two-level Whale Optimization Algorithm)进行高效求解,模型与算法均通过Matlab代码实现。研究针对电力系统中居民侧用电负荷的复杂调度问题,引入非合作博弈机制刻画各用户之间的利益竞争关系,实现负荷的分层优化分配;同时设计双层优化架构,上层优化资源配置,下层模拟用户自主决策行为,提升了模型的实用性与合理性。通过智能优化算法求解多层级、非凸非线性的博弈模型,有效提高了调度方案的收敛性与全局寻优能力,适用于现代智能电网中的需求侧管理与能源优化场景。; 适合人群:具备电力系统基础理论知识和Matlab编程能力,从事智能电网、能源优化调度、需求侧管理、博弈论应用等方向的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①应用于居民区电力负荷的分层优化调度系统设计与仿真分析;②为非合作博弈在多主体能源系统建模中的应用提供方法论支持;③利用双层鲸鱼算法解决具有嵌套结构的复杂双层优化问题,提升求解效率与调度方案的可行性。; 阅读建议:建议读者结合提供的Matlab代码深入理解模型构建逻辑与算法实现流程,重点关注博弈模型的效用函数设计、纳什均衡求解思路以及双层优化结构的迭代机制,宜配合实际用电数据开展复现实验以验证模型有效性与鲁棒性。
内容概要:本文围绕基于自适应神经模糊推理系统(ANFIS)智能控制器的可再生能源微电网功率管理系统展开研究,结合Simulink仿真实现,深入探讨了微电网中功率的智能调控与经济机组组合调度问题。通过引入ANFIS控制器,有效应对风能、光伏等可再生能源出力的波动性与不确定性,提升系统运行的稳定性与电能质量。研究内容涵盖微电网多源协调控制策略、功率平衡管理、优化调度模型构建及仿真验证,实现了对分布式电源、储能系统和负荷的协同优化,兼顾经济性与可靠性目标,并通过仿真平台验证了所提方法的有效性与优越性。; 适合人群:具备电力系统、自动化或新能源相关专业背景,熟悉Matlab/Simulink仿真环境,从事微电网能量管理、智能控制、能源优化等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高比例可再生能源接入场景下的微电网能量管理系统研发与教学实践;②为实现微电网功率稳定控制与经济高效运行提供先进的智能控制解决方案;③支撑高水平学术论文复现、科研课题攻关及实际工程项目的仿真验证与方案优化。; 阅读建议:建议结合提供的Simulink模型与相关代码进行动手实践,重点关注ANFIS控制器的设计流程、规则库构建与参数调优方法,并通过与传统PID或MPC控制策略的对比实验,深入理解其在动态响应与鲁棒性方面的优势。同时可进一步拓展文中提出的优化调度逻辑,应用于多目标、多约束的复杂实际应用场景中。

34,876

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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