• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
汇小流以成江海,积毫沙乃成高塔
博客园    首页    新随笔    联系   管理    订阅  订阅

SQL 面试题之头疼篇

收集一下最近的SQL 面试题和各位一同分享讨论,如果大家有更好的思路请拍板:

题目一:


建表脚本
if exists (select * from sysobjects where id = OBJECT_ID('[proceInfo]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) 
DROP TABLE [proceInfo]

CREATE TABLE [proceInfo] (
[ID] [int] NOT NULL primary key,
[pName] [varchar] (50) NOT NULL,
[pClick] [int] NOT NULL,
[parentID] [int] NOT NULL)


INSERT [proceInfo] ([ID],[pName],[pClick],[parentID]) VALUES ( 1,'男士裤子',200,2)
INSERT [proceInfo] ([ID],[pName],[pClick],[parentID]) VALUES ( 2,'女士裤子',250,2)
INSERT [proceInfo] ([ID],[pName],[pClick],[parentID]) VALUES ( 3,'男士帽子',100,3)
INSERT [proceInfo] ([ID],[pName],[pClick],[parentID]) VALUES ( 4,'女士帽子',90,3)
INSERT [proceInfo] ([ID],[pName],[pClick],[parentID]) VALUES ( 5,'男士鞋子',350,4)
INSERT [proceInfo] ([ID],[pName],[pClick],[parentID]) VALUES ( 6,'女士鞋子',250,4)




 我的答案:

select * from proceInfo where ID in(
select Min(ID) from
(
select * from proceInfo where pClick in(select MAX(pclick) from proceInfo group by parentID)
)a group by parentID
)

题目二

建表脚本
if exists (select * from sysobjects where id = OBJECT_ID('[Stu_Tea]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) 
DROP TABLE [Stu_Tea]

CREATE TABLE [Stu_Tea] (
[sid] [int] NOT NULL,
[stuid] [int] NOT NULL,
[tid] [int] NOT NULL)

INSERT [Stu_Tea] ([sid],[stuid],[tid]) VALUES ( 1,1,2)
INSERT [Stu_Tea] ([sid],[stuid],[tid]) VALUES ( 2,2,2)
INSERT [Stu_Tea] ([sid],[stuid],[tid]) VALUES ( 3,3,2)
INSERT [Stu_Tea] ([sid],[stuid],[tid]) VALUES ( 4,4,2)
INSERT [Stu_Tea] ([sid],[stuid],[tid]) VALUES ( 5,1,3)
INSERT [Stu_Tea] ([sid],[stuid],[tid]) VALUES ( 6,1,4)
INSERT [Stu_Tea] ([sid],[stuid],[tid]) VALUES ( 7,2,4)

我的答案:

select distinct(stuid) from dbo.Stu_Tea where tid in(
(select top(1) tid from(
select  COUNT(tid) c,tid from Stu_Tea group by tid)a
order by C desc),
(select top(1) tid from(
select  COUNT(tid) c,tid from Stu_Tea group by tid)a
order by C asc))

 

posted @ 2012-03-29 11:56  小流  阅读(430)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3