急问高手一个sql 查询single table 的语句?

lhslktg 2010-10-13 05:25:20
如果现在有一个 single table , 里面存的是不同用户比如wang, li, ren 的订单的信息。
要用一句sql 的查询语句 显示出 每个用户的订单总数。 每个用户用一行显示

比如 wang 用户 共5个订单
li 用户 共4个订单。

我给一个表, 大家也可以自己弄个以说明相关语句的用法。 主要是sql 如何写。
谢谢

orders date user name
1 2007-03-01 3:11:00 wang
2 2007-03-01 6:20:08 li
3 2007-03-02 3:11:00 wang
4 2007-03-02 6:20:08 li
5 2007-03-05 3:11:00 wang
6 2007-03-05 6:20:08 ren
注意是每个用户订单总数,每个用户一行

问题2
要是还有一个表存储了每个用户的个人信息,比如身高和体重,性别

那么需要运行一个sql 语句显示
每个用户的 订单总数 和性别
请问要如何写这个sql 语句呢?

非常感谢
...全文
169 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhslktg 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 abuying 的回复:]
引用 12 楼 lhslktg 的回复:

请问count(orders)from a
和 count(*) from a 有什么区别呢?如果都是 group by username



group by username,date 这个 group by 两个东西最后表是什么结果呢?
谢谢


1 ,因为是按照username分组的,count(orders)是统计是表中……
[/Quote]

1, 你说count(orders) 是统计是表中的所有order的数量 ,order=null不计其中,
是说把 sum(orders ),就是把每个order 当作数字加起来吗?
count(*),是说统计表中的order 的行数,除了 null 就有一行加1 吗?而不是按照每行的内容算吗?比如order 写着1000,不会就加了1000吧?

2,
group by username,date 最后是先 按 username 合并,然后结果再按date 合并吗?

谢谢了
abuying 2010-10-18
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lhslktg 的回复:]

请问count(orders)from a
和 count(*) from a 有什么区别呢?如果都是 group by username



group by username,date 这个 group by 两个东西最后表是什么结果呢?
谢谢
[/Quote]

1 ,因为是按照username分组的,count(orders)是统计是表中的所有order的数量 ,order=null不计其中,count(*),是统计表中的order 的行数,order=null,算入。
还有count(distinct orders)就是统计不重复的order的数量,因为里order是唯一不重复,效果与count(order)一样,但如果order有重复和行,结果就不同了。

最后结果运行一下select username,count(orders),date
from tab
group by username,date就知道!
lhslktg 2010-10-17
  • 打赏
  • 举报
回复
请问count(orders)from a
和 count(*) from a 有什么区别呢?如果都是 group by username



group by username,date 这个 group by 两个东西最后表是什么结果呢?
谢谢
lhslktg 2010-10-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fpzgm 的回复:]
SQL code

--1
SELECT [user name] as 用户,COUNT(orders) as 订单总数
FROM [table 1] GROUP BY [user name]

--2
SELECT a.[user name] as 用户,COUNT(a.orders) as 订单总数,b.sex
from [table1] a
left join[tab……
[/Quote]

Hi!
这里1 里面的 count(orders) 这里的orders 每一行的orders 只是序列号,也就是说应该每一行订单算一个。要计算每个用户有多少行出现在报表里面。
如果是这样的话还是 count(orders )吗?

请问count(orders)from a
和 count(*) from a 有什么区别呢?

fpzgm 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 lhslktg 的回复:]
如果现在有一个 single table , 里面存的是不同用户比如wang, li, ren 的订单的信息。
要用一句sql 的查询语句 显示出 每个用户的订单总数。 每个用户用一行显示

比如 wang 用户 共5个订单
li 用户 共4个订单。

我给一个表, 大家也可以自己弄个以说明相关语句的用法。 主要是sql 如何写。
谢谢

orders date user nam……
[/Quote]

参考#7楼
fpzgm 2010-10-13
  • 打赏
  • 举报
回复
嘿嘿,5、6楼粗心了,都是有问题的
fpzgm 2010-10-13
  • 打赏
  • 举报
回复

--1
SELECT [user name] as 用户,COUNT(orders) as 订单总数
FROM [table 1] GROUP BY [user name]

--2
SELECT a.[user name] as 用户,COUNT(a.orders) as 订单总数,b.sex
from [table1] a
left join[table2] b on a.[user name]=b.[user name]
group by a.[user name],b.sex

Rotel-刘志东 2010-10-13
  • 打赏
  • 举报
回复
---问题一
select username,count(orders),date
from tab
group by username,date
--问题二
---sex代表性别 high代表身高,weight代表体重
select a.username,a.sex,a.weight,count(a.orders)
from tb a,tab b
where a.username=b.username
group by a.username,a.sex,a.weight
Rotel-刘志东 2010-10-13
  • 打赏
  • 举报
回复
---问题一
select username,count(orders),date
from tab
group by username,date
--问题二
---sex代表性别 high代表身高,weight代表体重
select a.username,a.sex,a.weight,count(a.orders)
from tb a,tab b
where a.username=b.username
group a.username,a.sex,a.weight
siegebaoniu 2010-10-13
  • 打赏
  • 举报
回复
1.count(*)+group by 按名字分组,统计次数
2.两个表联一下,再取另表中的性别即可。
「已注销」 2010-10-13
  • 打赏
  • 举报
回复
2,
SELECT CNT,U.SEX
FROM(
SELECT [user name],COUNT(orders)CNT
FROM TAB
GROUP BY [user name]
)M,UserDetail U
WHERE M.[USER NAME]=U.[USER NAME]
「已注销」 2010-10-13
  • 打赏
  • 举报
回复
1,
SELECT [user name],COUNT(orders)CNT
FROM TAB
GROUP BY [user name]
SQL2088 2010-10-13
  • 打赏
  • 举报
回复
select b.xb,b.xm,订单总数=count(*) from A 
left join B on a.xm=b.xm
group by b.xb,b.xm
sinpoal 2010-10-13
  • 打赏
  • 举报
回复

--knowlege :group by
1>
select username,count(orders),date
from ta_user group by username,date

-- knowlege: join...on...
2>
select a.username,a.sex,a.weight,count(a.orders)
from tb_user a join tab_customer b
on a.username=b.username
group by a.username,a.sex,a.weight

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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