请教:这SQL语句应该怎么写?

qq_42829130 2018-07-29 09:50:24
请教:这SQL语句应该怎么写?

数据库很简单,如下:

表1
ID dept 拜访人 Vidate 拜访内容
1 华山派 郭靖 2018/6/20 翻阅武当秘笈
2 华山派 郭靖 2018/6/20 少林经典
3 华山派 郭靖 2018/6/21 易筋经
4 华山派 郭靖 2018/6/22 葵花宝典
5 华山派 郭靖 2018/6/22 少林经典
6 华山派 郭靖 2018/6/24 抄写武当秘笈
7 华山派 郭靖 2018/6/25 少林经典
8 华山派 黄蓉 2018/6/20 参悟易筋经
9 华山派 黄蓉 2018/6/22 偷看少林经典
10 华山派 黄蓉 2018/6/22 进入藏经阁,抄写经卷
11 华山派 黄蓉 2018/6/24 查阅武当秘笈
12 华山派 黄蓉 2018/6/25 葵花宝典
13 华山派 蒋东国 2018/6/20 易筋经
14 华山派 蒋东国 2018/6/21 少林经典
15 华山派 蒋东国 2018/6/20 易筋经
16 华山派 蒋东国 2018/6/20 易筋经
17 华山派 蒋东国 2018/6/22 少林经典
18 华山派 蒋东国 2018/6/24 易筋经
19 华山派 蒋东国 2018/6/25 抄写少林经典
20 华山派 李开泰 2018/6/20 武当秘笈
21 华山派 李开泰 2018/6/21 偷看少林经典
22 华山派 李开泰 2018/6/22 武当秘笈
23 华山派 李开泰 2018/6/23 背诵武当秘笈
24 华山派 李开泰 2018/6/24 少林经典
25 华山派 李开泰 2018/6/25 葵花宝典


我希望得到 这段时间里, 每个人的 拜访总次数 和 总天数 (一天的拜访次数可能为0, 可能为1,也可能多次)


得出 总次数 很简单, 语句为:
SELECT dept, 拜访人, Count(拜访人) AS 拜访总次数
FROM 表1
GROUP BY dept, 拜访人;

就得到了 总次数 :
表1 查询2
dept 拜访人 拜访总次数
华山派 郭靖 7
华山派 黄蓉 5
华山派 蒋东国 7
华山派 李开泰 6


怎么得出 总天数 呢?

我目前是两步查询,第一步 count 出 每人每天的参访次数 ,生成查询1 ,

第二部再对查询1 count, 生成每人的参访天数


有没有方法,一条SQL语句,生成 总天数 呢?


最好是,一条SQL语句,同时产生 每个人的 拜访总次数 和 总天数 ,

只用一个查询就输出结果,可以吗?


...全文
273 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_42829130 2018-08-15
  • 打赏
  • 举报
回复
谁还可以帮忙啊,谢谢啦
吉普赛的歌 版主 2018-08-05
  • 打赏
  • 举报
回复
引用 11 楼 qq_42829130 的回复:
[quote=引用 3 楼 weixin_42063442 的回复:]
GO
SELECT dept
, bfr AS [拜访人]
, Count(bfr) AS [拜访总次数]
, (SELECT COUNT(1) FROM (SELECT DISTINCT d FROM t AS b WHERE b.bfr=a.bfr) AS tt) AS [拜访总天数]
FROM t AS a
GROUP BY dept, bfr;
看下行不行

报告版主,这语句返回的 “拜访总天数” 这一列都 为0[/quote]
你自己研究吧, 实在不想安装 Access , 这是早已淘汰的技术,
即使不想安装 sqlserver, 想尽量简单, 现在单机数据库基本都是 sqlite 。
qq_42829130 2018-08-05
  • 打赏
  • 举报
回复
好的,谢谢版主啦
qq_42829130 2018-08-04
  • 打赏
  • 举报
回复
引用 3 楼 weixin_42063442 的回复:
GO
SELECT dept
, bfr AS [拜访人]
, Count(bfr) AS [拜访总次数]
, (SELECT COUNT(1) FROM (SELECT DISTINCT d FROM t AS b WHERE b.bfr=a.bfr) AS tt) AS [拜访总天数]
FROM t AS a
GROUP BY dept, bfr;
看下行不行

报告版主,这语句返回的 “拜访总天数” 这一列都 为0
吉普赛的歌 版主 2018-08-03
  • 打赏
  • 举报
回复
引用 9 楼 qq_42829130 的回复:
请教老大,在Access里面,应该怎么写这句子呢?
Access不允许对dintinct 进行count


USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t(
id INT PRIMARY KEY,
dept NVARCHAR(10),
bfr NVARCHAR(10),
d DATETIME,
con NVARCHAR(20)
)
INSERT INTO t
SELECT 1 ,'华山派', '郭靖', '2018/6/20' ,'翻阅武当秘笈'
UNION ALL SELECT 2 ,'华山派', '郭靖', '2018/6/20' ,'少林经典'
UNION ALL SELECT 3 ,'华山派', '郭靖', '2018/6/21' ,'易筋经'
UNION ALL SELECT 4 ,'华山派', '郭靖', '2018/6/22' ,'葵花宝典'
UNION ALL SELECT 5 ,'华山派', '郭靖', '2018/6/22' ,'少林经典'
UNION ALL SELECT 6 ,'华山派', '郭靖', '2018/6/24' ,'抄写武当秘笈'
UNION ALL SELECT 7 ,'华山派', '郭靖', '2018/6/25' ,'少林经典'
UNION ALL SELECT 8 ,'华山派', '黄蓉', '2018/6/20' ,'参悟易筋经'
UNION ALL SELECT 9 ,'华山派', '黄蓉', '2018/6/22' ,'偷看少林经典'
UNION ALL SELECT 10 ,'华山派', '黄蓉', '2018/6/22' ,'进入藏经阁,抄写经卷'
UNION ALL SELECT 11 ,'华山派', '黄蓉', '2018/6/24' ,'查阅武当秘笈'
UNION ALL SELECT 12 ,'华山派', '黄蓉', '2018/6/25' ,'葵花宝典'
UNION ALL SELECT 13 ,'华山派', '蒋东国', '2018/6/20' ,'易筋经'
UNION ALL SELECT 14 ,'华山派', '蒋东国', '2018/6/21' ,'少林经典'
UNION ALL SELECT 15 ,'华山派', '蒋东国', '2018/6/20' ,'易筋经'
UNION ALL SELECT 16 ,'华山派', '蒋东国', '2018/6/20' ,'易筋经'
UNION ALL SELECT 17 ,'华山派', '蒋东国', '2018/6/22' ,'少林经典'
UNION ALL SELECT 18 ,'华山派', '蒋东国', '2018/6/24' ,'易筋经'
UNION ALL SELECT 19 ,'华山派', '蒋东国', '2018/6/25' ,'抄写少林经典'
UNION ALL SELECT 20 ,'华山派', '李开泰', '2018/6/20' ,'武当秘笈'
UNION ALL SELECT 21 ,'华山派', '李开泰', '2018/6/21' ,'偷看少林经典'
UNION ALL SELECT 22 ,'华山派', '李开泰', '2018/6/22' ,'武当秘笈'
UNION ALL SELECT 23 ,'华山派', '李开泰', '2018/6/23' ,'背诵武当秘笈'
UNION ALL SELECT 24 ,'华山派', '李开泰', '2018/6/24' ,'少林经典'
UNION ALL SELECT 25 ,'华山派', '李开泰', '2018/6/25' ,'葵花宝典'
GO
SELECT dept
, bfr AS [拜访人]
, Count(bfr) AS [拜访总次数]
, (SELECT COUNT(1) FROM (SELECT DISTINCT d FROM t AS b WHERE b.bfr=a.bfr) AS tt) AS [拜访总天数]
FROM t AS a
GROUP BY dept, bfr;


看下行不行
qq_42829130 2018-08-02
  • 打赏
  • 举报
回复
引用 2 楼 yenange 的回复:


SELECT dept
, bfr AS [拜访人]
, Count(bfr) AS [拜访总次数]
, (SELECT COUNT(DISTINCT d) FROM t AS b WHERE b.bfr=a.bfr) AS [拜访总天数]
FROM t AS a
GROUP BY dept, bfr;





请教老大,在Access里面,应该怎么写这句子呢?
Access不允许对dintinct 进行count
qq_42829130 2018-07-30
  • 打赏
  • 举报
回复
多谢各位高手大神
qq_42829130 2018-07-30
  • 打赏
  • 举报
回复
多谢常清静矣兄弟 ,哈哈哈
吉普赛的歌 版主 2018-07-30
  • 打赏
  • 举报
回复
引用 5 楼 qq_42829130 的回复:
多谢吉普赛兄弟,哈哈

没事就结贴吧
qq_42829130 2018-07-30
  • 打赏
  • 举报
回复
多谢吉普赛兄弟,哈哈
吉普赛的歌 版主 2018-07-30
  • 打赏
  • 举报
回复
也可以, 更简洁,
常清静矣 2018-07-30
  • 打赏
  • 举报
回复
引用 2 楼 yenange 的回复:
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t(
id INT PRIMARY KEY,
dept NVARCHAR(10),
bfr NVARCHAR(10),
d DATETIME,
con NVARCHAR(20)
)
INSERT INTO t
SELECT 1 ,'华山派', '郭靖', '2018/6/20' ,'翻阅武当秘笈'
UNION ALL SELECT 2 ,'华山派', '郭靖', '2018/6/20' ,'少林经典'
UNION ALL SELECT 3 ,'华山派', '郭靖', '2018/6/21' ,'易筋经'
UNION ALL SELECT 4 ,'华山派', '郭靖', '2018/6/22' ,'葵花宝典'
UNION ALL SELECT 5 ,'华山派', '郭靖', '2018/6/22' ,'少林经典'
UNION ALL SELECT 6 ,'华山派', '郭靖', '2018/6/24' ,'抄写武当秘笈'
UNION ALL SELECT 7 ,'华山派', '郭靖', '2018/6/25' ,'少林经典'
UNION ALL SELECT 8 ,'华山派', '黄蓉', '2018/6/20' ,'参悟易筋经'
UNION ALL SELECT 9 ,'华山派', '黄蓉', '2018/6/22' ,'偷看少林经典'
UNION ALL SELECT 10 ,'华山派', '黄蓉', '2018/6/22' ,'进入藏经阁,抄写经卷'
UNION ALL SELECT 11 ,'华山派', '黄蓉', '2018/6/24' ,'查阅武当秘笈'
UNION ALL SELECT 12 ,'华山派', '黄蓉', '2018/6/25' ,'葵花宝典'
UNION ALL SELECT 13 ,'华山派', '蒋东国', '2018/6/20' ,'易筋经'
UNION ALL SELECT 14 ,'华山派', '蒋东国', '2018/6/21' ,'少林经典'
UNION ALL SELECT 15 ,'华山派', '蒋东国', '2018/6/20' ,'易筋经'
UNION ALL SELECT 16 ,'华山派', '蒋东国', '2018/6/20' ,'易筋经'
UNION ALL SELECT 17 ,'华山派', '蒋东国', '2018/6/22' ,'少林经典'
UNION ALL SELECT 18 ,'华山派', '蒋东国', '2018/6/24' ,'易筋经'
UNION ALL SELECT 19 ,'华山派', '蒋东国', '2018/6/25' ,'抄写少林经典'
UNION ALL SELECT 20 ,'华山派', '李开泰', '2018/6/20' ,'武当秘笈'
UNION ALL SELECT 21 ,'华山派', '李开泰', '2018/6/21' ,'偷看少林经典'
UNION ALL SELECT 22 ,'华山派', '李开泰', '2018/6/22' ,'武当秘笈'
UNION ALL SELECT 23 ,'华山派', '李开泰', '2018/6/23' ,'背诵武当秘笈'
UNION ALL SELECT 24 ,'华山派', '李开泰', '2018/6/24' ,'少林经典'
UNION ALL SELECT 25 ,'华山派', '李开泰', '2018/6/25' ,'葵花宝典'
GO
SELECT dept
, bfr AS [拜访人]
, Count(bfr) AS [拜访总次数]
, (SELECT COUNT(DISTINCT d) FROM t AS b WHERE b.bfr=a.bfr) AS [拜访总天数]
FROM t AS a
GROUP BY dept, bfr;


为什么要使用select子句啊,我最近才学,小白不是很懂,我试了下这个语句也查出相同结果
select dept,bfr as 拜访人,count(bfr) as 拜访次数,count(distinct d) as 拜访天数 from t group by dept,bfr
吉普赛的歌 版主 2018-07-30
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t(
id INT PRIMARY KEY,
dept NVARCHAR(10),
bfr NVARCHAR(10),
d DATETIME,
con NVARCHAR(20)
)
INSERT INTO t
SELECT 1 ,'华山派', '郭靖', '2018/6/20' ,'翻阅武当秘笈'
UNION ALL SELECT 2 ,'华山派', '郭靖', '2018/6/20' ,'少林经典'
UNION ALL SELECT 3 ,'华山派', '郭靖', '2018/6/21' ,'易筋经'
UNION ALL SELECT 4 ,'华山派', '郭靖', '2018/6/22' ,'葵花宝典'
UNION ALL SELECT 5 ,'华山派', '郭靖', '2018/6/22' ,'少林经典'
UNION ALL SELECT 6 ,'华山派', '郭靖', '2018/6/24' ,'抄写武当秘笈'
UNION ALL SELECT 7 ,'华山派', '郭靖', '2018/6/25' ,'少林经典'
UNION ALL SELECT 8 ,'华山派', '黄蓉', '2018/6/20' ,'参悟易筋经'
UNION ALL SELECT 9 ,'华山派', '黄蓉', '2018/6/22' ,'偷看少林经典'
UNION ALL SELECT 10 ,'华山派', '黄蓉', '2018/6/22' ,'进入藏经阁,抄写经卷'
UNION ALL SELECT 11 ,'华山派', '黄蓉', '2018/6/24' ,'查阅武当秘笈'
UNION ALL SELECT 12 ,'华山派', '黄蓉', '2018/6/25' ,'葵花宝典'
UNION ALL SELECT 13 ,'华山派', '蒋东国', '2018/6/20' ,'易筋经'
UNION ALL SELECT 14 ,'华山派', '蒋东国', '2018/6/21' ,'少林经典'
UNION ALL SELECT 15 ,'华山派', '蒋东国', '2018/6/20' ,'易筋经'
UNION ALL SELECT 16 ,'华山派', '蒋东国', '2018/6/20' ,'易筋经'
UNION ALL SELECT 17 ,'华山派', '蒋东国', '2018/6/22' ,'少林经典'
UNION ALL SELECT 18 ,'华山派', '蒋东国', '2018/6/24' ,'易筋经'
UNION ALL SELECT 19 ,'华山派', '蒋东国', '2018/6/25' ,'抄写少林经典'
UNION ALL SELECT 20 ,'华山派', '李开泰', '2018/6/20' ,'武当秘笈'
UNION ALL SELECT 21 ,'华山派', '李开泰', '2018/6/21' ,'偷看少林经典'
UNION ALL SELECT 22 ,'华山派', '李开泰', '2018/6/22' ,'武当秘笈'
UNION ALL SELECT 23 ,'华山派', '李开泰', '2018/6/23' ,'背诵武当秘笈'
UNION ALL SELECT 24 ,'华山派', '李开泰', '2018/6/24' ,'少林经典'
UNION ALL SELECT 25 ,'华山派', '李开泰', '2018/6/25' ,'葵花宝典'
GO
SELECT dept
, bfr AS [拜访人]
, Count(bfr) AS [拜访总次数]
, (SELECT COUNT(DISTINCT d) FROM t AS b WHERE b.bfr=a.bfr) AS [拜访总天数]
FROM t AS a
GROUP BY dept, bfr;

qq_42829130 2018-07-29
  • 打赏
  • 举报
回复
就希望生成这样一个结果

dept 拜访人 拜访总次数 拜访天数
华山派 郭靖 7 5
华山派 黄蓉 5 4
华山派 蒋东国 7 5
华山派 李开泰 6 6
SQL语句如何写?

谢谢啦

34,587

社区成员

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

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