group by 怎样使用函数?

luhongjun 2004-03-19 04:33:17
SELECT DATEPART(year, birthday) AS A1,
COUNT(*) AS A2,
DATEDIFF(year, birthday,GETDATE()) AS A3
FROM man
GROUP BY DATEPART(year, birthday)
这样是错诉的
SELECT DATEPART(year, birthday) AS A1,
COUNT(*) AS A2,
DATEDIFF(year, birthday,GETDATE()) AS A3
FROM man
GROUP BY birthday
是可以的。但我需要按年进行统计,我需要怎么办?
谢谢。
...全文
108 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoliaoyun 2004-03-19
  • 打赏
  • 举报
回复
realgz(realgz) 和leeboyan(宝宝)升星还没有放分就跑来蹭分了.....
lynx1111 2004-03-19
  • 打赏
  • 举报
回复
空手来纯接分!
zjcxc 元老 2004-03-19
  • 打赏
  • 举报
回复
--来接分

SELECT DATEPART(year, birthday) AS A1
,COUNT(*) AS A2
,DATEDIFF(year, birthday,GETDATE()) AS A3
FROM man
GROUP BY DATEPART(year, birthday),DATEDIFF(year,birthday,GETDATE())
realgz 2004-03-19
  • 打赏
  • 举报
回复
最近 一想蹭分就晚。
leeboyan 2004-03-19
  • 打赏
  • 举报
回复
realgz(realgz):又晚了?
realgz 2004-03-19
  • 打赏
  • 举报
回复
为什么大部分情况下我一想蹭分自然楼上就有好大一票人?!而且把话都给说完了。。
leeboyan 2004-03-19
  • 打赏
  • 举报
回复
SELECT DATEPART(year, birthday) AS A1,
COUNT(*) AS A2,
DATEDIFF(year, birthday,GETDATE()) AS A3
FROM man
GROUP BY DATEPART(year, birthday),DATEDIFF(year, birthday,GETDATE())
leeboyan 2004-03-19
  • 打赏
  • 举报
回复
csdn把兄弟们都饿疯了,看到一个三颗星星的200分,有或阿!
LoveSQL 2004-03-19
  • 打赏
  • 举报
回复
--给你个例子,看看对你是否有帮助
declare @ table(birthday datetime,name varchar(20))
insert into @ select '2000-2-2','ligg' union all select '1990-3-3','wangy'
select a1,sum(a2) a2,sum(a3) a3
from

(
SELECT
DATEPART(year, birthday) AS A1,
COUNT(*) AS A2,
DATEDIFF(year, birthday,GETDATE()) AS A3
FROM @
group by birthday
)
a

GROUP BY a1

--结果
a1 a2 a3
----------- ----------- -----------
1990 1 14
2000 1 4

(2 row(s) affected)

victorycyz 2004-03-19
  • 打赏
  • 举报
回复
SELECT DATEPART(year, birthday) AS A1,
COUNT(*) AS A2,
DATEDIFF(year, birthday,GETDATE()) AS A3
FROM man
GROUP BY DATEPART(year, birthday), DATEDIFF(year, birthday,GETDATE())
luhongjun 2004-03-19
  • 打赏
  • 举报
回复
哈,我以为是group by 不允许使用函数呢,把问题想偏了
leeboyan 2004-03-19
  • 打赏
  • 举报
回复
要么用left(convert())
leeboyan 2004-03-19
  • 打赏
  • 举报
回复
这样呢?
select convert(varchar(4),birthday,120)as a1,count(*)as a2,convert(varchar(4),getdate(),120)as a3 from man group by convert(varchar(4),birthday,120)
luhongjun 2004-03-19
  • 打赏
  • 举报
回复
Rotaxe(程序员),谢谢,使用group by 必须都用聚集,给分
Rotaxe 2004-03-19
  • 打赏
  • 举报
回复
不太清楚
SELECT DATEPART(year, birthday) AS A1,
COUNT(*) AS A2,
min(DATEDIFF(year, birthday,GETDATE())) AS A3
FROM man
GROUP BY DATEPART(year, birthday)

34,593

社区成员

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

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