I'll second Andrew's take on this. Focusing on T-SQL until you've really learned the licks is the right thing to do and it will help you quite a bit when you get to Hadoop. IIRC, Hadoop uses "HQL", which has a lot of similarities to SQL in general.
Just to give you some confidence, I've been doing pretty good with T-SQL and (knocks on wood) haven't yet needed to get into learning Hadoop.
Shifting gears a bit, some of the best things you can do to learn T-SQL is to learn as many of the intrinsic functions as you can, especially what you can actually do with date and time functions (the examples in most straight-forward books only show what the function does and not some of the magic you can actually do with them). Another very important set of functions are the "Windowing" functions, like ROW_NUMBER() and how to use OVER with many of the aggregate functions.
Of course, you should also learn how to use JOINs and how to use the two forms of APPLY. You should also learn how to create Inline Table Valued Functions (nasty fast compared to Scalar functions and a lot of us refer to them as "iTVFs").
You should also learn how to count from 0 (zero) to some number as rapidly as possible because it's used to solve some of the hairiest problems there are. A lot of us refer to such a thing as a "Tally Table" ("Tally" means "to count") or an equivalent function. Programming classes for just about every language in the world teach how to count (in a loop) as one of the first and most important things there is but most SQL classes never get around to teaching how to count until they get to WHILE loops and Recursive CTEs, both of which are two of the absolute worst ways to count in SQL.
See the following article for an introduction to what you can do with a "Tally Table" and then see the article and function at the list link in my signature line below for a replacement for the Tally table. Understand that, behind the scenes, every SELECT is actually a near machine language speed loop. You don't usually need to write any loops because SELECTs already loop. I call them "Pseudo Cursors" (thanks to R. Barry Young for originating the term).
is pronounced "ree-bar
" and is a "Modenism
" for R
First step towards the paradigm shift of writing Set Based code:
________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
"Change is inevitable... change for the better is not".
"If "pre-optimization" is the root of all evil, then what does the resulting no optimization lead to?"
How to post code problems
How to Post Performance Problems
Create a Tally Function (fnTally)