Lower correlation in sub-group than in main-group Variable 1: Points in the NBA in Year 1;
Variable 2: Points in the NBA in Year 2;
Objective: Calculate the year-to-year correlation coefficient
Let's say the correlation coefficient for the entire dataset is 0.8.
However, when I divide the dataset into sub-groups based on position, the correlation coefficients are much lower (between 0.4 and 0.7). I still have a few hundred observations per position, so I don't think it's a sample size issue.
Why is that? What conclusions can I draw from that?

That is absolutely not surprising, since (presumably) points scored depend heavily on position, which is your grouping variable. Players in one position may have a lower correlation between points they score in the two years, but they are still likely to score higher or lower than players in another position in both years.
Here is an illustration of some random data. Note how each color's points are pretty much uncorrelated, but the clusters follow an upward slope, which indicates the overall propensity for certain positions to score more or fewer points. Perhaps a plot like this makes sense to visualize your data, too.

R code:
library(MASS)
set.seed(1)
back <- mvrnorm(100,c(1,1),diag(rep(1,2)))
middle <- mvrnorm(100,c(2,2),diag(rep(1,2)))
forward <- mvrnorm(100,c(3,3),diag(rep(1,2)))
all <- rbind(back,middle,forward)

cor(back)
cor(middle)
cor(forward)
cor(all)

plot(back,xlim=range(all),ylim=range(all),pch=19,col=1,
    xlab="Year 1",ylab="Year 2",las=1,xaxt="n",yaxt="n")
points(middle,pch=19,col=2)
points(forward,pch=19,col=3)

