Over the past 8 months, I have interviewed nearly 50 people, in an effort to fill a Data Analyst/Information Quality position that I have open. Almost 80% of them could barely spell SQL. The other 20% were pretty good but lacked the depth I need. Why is it that people will put things like "Oracle, MSSQL, and database skills" on a resume, when they really have no right to do so?
The 80% do get in for an interview or two, but their "skills dropping" backfires on them almost immediately. For example, we talked to one individual who stated that he/she (afterwards known as she), "did SQL all the time." I liked that, ** thinking, finally, someone who knows SQL **. So, I dove in, asking for a simple inner join between the EMPLOYEE and DEPARTMENT tables. I could tell that the candiate was in trouble when she couldn't get past the "SELECT FROM WHERE"correctly.
What I expected:
-- Oracle sorthand
select *
from employee e,
department d
where e.department_id = d.department_id
-- ANSII type
select *
from employee e inner join department d
on e.department_id = d.department_id
What I got
select *
from employee as e left join department as d
on e.department_id = d.department_id
There were 2 problems with the statement. One, the "employee as" and "department as" stuff won't fly. Putting an "as" in the from phrases will cause an "ORA-00933: SQL command not properly ended." error. However, one can put an "as" in "select" phrases.
select e.employee_id,
e.first_name||' '||e.last_name AS FULL_NAME
...
The second problem was that I didn't want a "left join" which is equivelant to "left outer join." This query would have fetched rows in employee, even if a matching "department_id" did not exist in "department." When I questioned the candidate on why she chose the approach and how much SQL she actually wrote, the candidate said that she used a tool to do visual SQL queries and didn't write SQL per se. That's when the candidate lost me. What I need is people who speak/type SQL almost as well as they do thier spoken language because data mining synergy gets lost when you have to stop and think about the syntax.
To benefit the 20%, I would like to post some SQL training. These posts will be fairly in-depth, but don't be afraid, because I will give plenty of examples. My plan is to post around 10 questions at the beginning of a month. Then, at the end of the month I will post the answers. I am also open to direct questions, if they aren't the "someone spoon feed me SQL knowledge" type.