小编Der*_*omm的帖子

高级SQL开发人员面试问题 - 太难了?

警告,这是一个很长的帖子.TL/DR:面试问题我是否过于苛刻?

好的,在申请人总共大约9个月的失望之后,我想确保我们对高级开发人员申请人的期望不高.

背景

我们是一家商业智能商店.但是,我们不希望候选人获得BI知识.如果你有一个坚实的T-SQL背景,那就是我们所需要的.关于Analysis Services,Dimensional Modeling等,我们将为您提供其余的方法.因此,我们所有测试的都是T-SQL技能.一切都发生在SSMS内.

如果考生通过电话筛选,我们会带他们进行编码面试,我们会给他们7个问题和90分钟的慷慨.我在编码过程中出现了各种各样的东西,比如他们如何浏览工具,他们研究的内容等等.应该注意的是,我们非常清楚地知道他们可以使用任何资源,包括互联网,BOL,等等

问题

以下是缩写形式的问题,试图不给予太多分析(因为他们可能会谷歌这个问题:P)

  1. Fizzbuzz - 我想看看他们如何生成行集.如果他们使用变量/循环,我会死在里面
  2. 聚合 - 这个问题基本上迫使候选人使用select语句的全部范围(select,from,where,group by,having)
  3. NULL是如何工作的 - 我给出了一个"棘手"的问题,其中IN子查询由于子查询表中的NULL值而没有返回任何内容.我要求解决方法使查询工作,然后解释为什么它不首先.我想知道他们理解NULL值是什么/意味着什么以及SQL如何评估它们.
  4. 索引 - 没有索引的简单2连接查询.我要求候选人将整个查询子树的成本提高20%.我很快就发现他们之前是否已编入索引.我告诉他们"阅读问题.给我一些我要求的东西".遗憾的是,我认为单个申请人甚至没有注意到子树成本的开始或结束.
  5. 运行总计 - 我给出一个带有PK /日期/数值的表,并要求他们更新每个PK的运行总计的另一列.这并不容易,这是一项奇怪的任务.我不关心他们是否及时完成,但我想看看他们没有做过研究还是一次不错的尝试(即使它效率低下,至少开始编写一些相关的子查询).
  6. XML - 我要求他们从XML类型的列中检索值.我不希望候选人知道如何做到这一点,我告诉他们.这一点的目的是观察他们进行研究等,就像其他任何时候他们在工作中遇到新问题并需要解决它一样.
  7. CTE - 我只是要求他们写一个CTE.而已.奖励,如果它做一些创造性/有趣的事情.

就是这样.所以,我的问题是这些问题有多公平?我们正在寻找有实际经验的人.对我来说不可思议的是,拥有10年SQL经验的人甚至无法得到其中的1或2个问题.我太苛刻了吗?我应该添加/删除这些东西吗?

sql t-sql sql-server

15
推荐指数
1
解决办法
2万
查看次数

重构tsql视图,该视图使用row_number()返回具有唯一列值的行

我有一个sql视图,我用它来检索数据.让我们说一大堆产品,这些产品与购买它们的顾客有关.无论链接到多少客户,每个产品的视图应仅返回一行.我正在使用row_number函数来实现这一点.(此示例已简化,通用情况将是一个查询,其中应该只为某列X的每个唯一值返回一行.返回哪一行并不重要)

CREATE VIEW productView AS
SELECT * FROM 
    (SELECT 
        Row_number() OVER(PARTITION BY products.Id ORDER BY products.Id) AS product_numbering,
        customer.Id
        //various other columns
    FROM products
    LEFT OUTER JOIN customer ON customer.productId = prodcut.Id
    //various other joins
    ) as temp
WHERE temp.prodcut_numbering = 1
Run Code Online (Sandbox Code Playgroud)

现在假设此视图中的总行数约为100万,而从productView运行select*需要10秒.从productView执行查询,例如select*,其中productID = 10需要相同的时间.我相信这是因为查询得到了评估

SELECT * FROM 
    (SELECT 
        Row_number() OVER(PARTITION BY products.Id ORDER BY products.Id) AS product_numbering,
        customer.Id
        //various other columns
    FROM products
    LEFT OUTER JOIN customer ON customer.productId = prodcut.Id
    //various other joins
    ) as temp
WHERE prodcut_numbering …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-view

5
推荐指数
1
解决办法
1873
查看次数

如何比较DateTime列与仅日期而不是时间

我正在使用mySql,我的表列date是DATETIME类型

但我想比较今天的日期而不是时间

       $today = date("Y-m-d",  time());
Run Code Online (Sandbox Code Playgroud)

如果我使用上述方法比较日期,它总是出错.

$this->update("
UPDATE `stats_tracker` 
SET 
  `user_agent`='$this->visitor_user_agent' , 
  `referrer`='$this->referrer_page' , 
  `page_views`='$page_views' 
WHERE 
  `visitor_ip`='$this->visitor_ip' 
  AND `page`='$this->this_page' 
  AND `date`='$today'");
Run Code Online (Sandbox Code Playgroud)

请帮助我,我不是一个好的mySQL程序员.

mysql datetime

5
推荐指数
1
解决办法
2万
查看次数

在SQL中使用日期

我有一个事件表,需要将最近的4个日期拉到今天的日期,它们可以是过去,现在或将来.

如果可能的话,SQL(使用MySQL)会是什么?

谢谢

布雷特

mysql sql date

3
推荐指数
1
解决办法
100
查看次数

从asp.net列表视图中读取\写入\更改MySql表

所以,我正在为我的兄弟建立一个新的网站,似乎我需要为他使用MySql.

在ASP.NET有一个列表视图项,你可以选择从哪个数据库是将采取的信息,您可以Read\ Write\ Change\ Delete用的点击button.

这里有谁知道我怎么能这样做MySql?而不是mssql ..我知道如何使用DataBases,我只是没有使用MySql,我会感谢任何会帮助我的人.

再次感谢!alon .. :)

c# mysql asp.net webforms

3
推荐指数
1
解决办法
1634
查看次数

标签 统计

mysql ×3

sql ×3

sql-server ×2

t-sql ×2

asp.net ×1

c# ×1

date ×1

datetime ×1

sql-view ×1

webforms ×1