Can anybody help me by explaining the difference between the usage of "good at" and "good in"?
(AmE) Chocolate is good in cake. Sarcasm can be good in the proper context. That actor was good in his last movie. Wine is good in moderation. She's good in bed. What's good in this restaurant? Was there some good in these examples?
"good at" however, means adept at performing a particular activity, whether physical or academic. She's good at math, but he's good at sports. I think I'm good at English grammar. I know I'm good at solving crossword puzzles. I hope I was good at explaining to you.
Generally, someone is good at doing something. On the other hand, someone is [simply] good in something. However, depending on which dialect you are speaking in, it depends.
She's good at fooling people -at, following procedure/act
...hiring candidates good in programming -simply, she's good in coding.
COCA does show 23 results of the phrase "good in math".
However, it's worth noting that good at something is NOT utterly incorrect. In fact, I think it's commoner.
Some people just born good at math - Huffington Post
Thinking you are good at math - News from the Ohio State University
I think this ngram will help dissolve the matter, at least slightly if not completely.
What I can conclude from this (the wise can extract more significant meanings!)
Good at doing..., good at eating..., etc. are commoner than good in doing..., good in eating... etc. (The -ing forms used in these examples are actually used as verbs, see ngram)
Good in maths, good in singing, etc. were commoner than good at maths, good at singing, etc. though the difference in their usage has diminished. (The -ing form used in these examples is actually used as noun, see ngram)
P.S.: to know what those double underscores mean, like in _NOUN_, take a look at the ngram info.