• 面试日记(1)


    前言:我写这个完全是自己面试中的问题收集,或者自己的想法.希望其他兄弟姐妹能获得一些需要的东西.
    2006年2月中旬,我去一家公司面试,电脑城那边的一家;瓦赛,楼层挺高的,23楼哦(我一般面试或上班都是10楼以下的哦,呵呵);和他们的技术老大聊了会工作经验,基础知识;之后,他说:这样吧,我给你一道题,看下你的水平如何?我当然只有硬接了,谁知道他出什么题哦?

    题目只有一道,如下;
    user_id,user_name,salary
    1 ,Jack ,1000
    2 ,Mick ,1200
    3 ,Tom ,1000
    4 ,Frank ,1300

    写一个sql语句,目的是获得相同薪水的人的名称 我当时根据数据库原理,笛卡尔集思想来写了这么一句: 

    Select user_name,salary From Table
    where salary in
    (
    select A.salary from Table A,B
    where
    A.salary = B.salary
    and A.user_name <> B.user_name
    )

    理论上,这是一个完美的sql语句,但是这也是一个复杂的语句,原因在于,它需要自交产生更大的数据,从而使得访问速度渐慢;不是很实用的sql

    另外一个较好的sql,是讨论出来的:
    Select salary ,user_name, From Table
    Where salary in
    (
    select salary from Table
    Group by salary
    having (count(salary)>1)
    )
    Order by salary ,user_name

    非常简单明了.

    对于这个写法,我非常高兴;至少我知道我还需要更多的熟悉一些基本的数据库标准函数.
    面试,不要看的太远,原来能积累一些东西就是一种成长!

    希望有什么好的sql,请告诉我,谢谢了!

  • 相关阅读:
    订餐系统
    throw和throws
    CF999E Solution
    CF1142B Solution
    CF965C Solution
    CF963B Solution
    CF999F Solution
    CF975D Solution
    CF997B Solution
    hdu 2553 N皇后
  • 原文地址:https://www.cnblogs.com/GoGoagg/p/335972.html
Copyright © 2020-2023  润新知