Dear Uddhava,
Hello. There are three kinds of ethnic groupings in India.
One is based on religion with the majority of population being Hindus, then Muslims, then Christians, then Sikhs, then Buddhists, then Jains, etc. etc.
The next is based on language. Even in this there are two major groupings. One is the Dravidian language group consisting of the four South Indian languages - Tamil, Telugu, Kannada and Malayalam. The second is the group consisting of the remaining languages like Hindi, Marathi, Gujrati, Punjabi, Oriya, Bengali, Assamese etc.
The third is based on the castes within the Hindus (and to some extent in other religions too, even though they do not believe in division based on castes). Within Hindus there are the Brahmins (the teaching community), Kshatriyas (warrior class), Vaishyas (business community) and Shudras (named Harijans by Gandhiji and called backward castes/scheduled castes/sheduled tribes by Govt. of India). The above divisions were based on the tasks performed by the respective groups in the ancient times. But in modern days these groupings have become meaningless to a great extent although people (especially politicians) use these labels for selfish desires.
As regards the division among Hindus based on their mode of worship, they are broadly divided into Shaivites, Vaishnavites and worshippers of Shakti (consorts of Shiva and other female deities). The division of Hindus as Shaivites and Vaishnavites is apparently visible particularly in the South India (that too among the Brahmins) but in North India there is no such specific grouping. Almost all North Indian Hindus worship all the Hindu deities (including Shiva and Vishnu). The worship of shakti is particularly popular in Eastern India although Shakti is worshipped in general in the entire country.
Regards,
OGS,
Arjun