Obtenga una subcadena de una columna y realice un groupBy y count

Tengo una tabla que almacena datos sobre una gran cantidad de archivos, como su idioma, ID única, ruta de archivo, etc. Quiero poder obtener la subcadena de la ID única que me da el tipo de activo, esto es Siempre las 2 primeras letras del ID. Luego, quiero agrupar estos tipos de activos por idioma y contar cuántos de cada tipo tiene cada idioma. Así que al final me gustaría idealmente una tabla que tenga una columna de idioma y luego una columna para cada subcadena (tipo de activo).

Intenté crear una declaración de conmutación grande, pero esto no es muy confiable y me dijeron que tal vez linq sería mejor. No tengo mucha experiencia con linq o sql y tengo un par de consultas de sql que he intentado que me dan una parte de los resultados deseados, pero esperaba que alguien que tenga más experiencia pueda saber cómo agrupar estas funciones en una declaración.

SELECT 
  LCID,
  SUBSTRING(AssetID,1,2)  
FROM [table]

esto me da las subcadenas correctas, pero tengo varias filas para cada idioma. ¿Hay alguna forma de agrupar los mismos idiomas en una columna y luego contar cuántos de cada tipo hay? Gracias

Respuestas a la pregunta(1)

Su respuesta a la pregunta