web-dev-qa-db-fra.com

Dépassement de SQL COUNT

Voici ma requête:

SELECT COUNT(*) FROM Similarities WHERE T1Similarity = 0 OR T2Similarity = 0

Voici le résultat:

Msg 8115, niveau 16, état 2, ligne 1

Erreur de dépassement arithmétique lors de la conversion de l'expression en type de données int.

Le tableau comporte 4 milliards de lignes. Je n'excepte pas que cette requête soit rapide, mais après environ 5 minutes, elle échoue avec une erreur de débordement. Existe-t-il une fonction COUNT pour des données plus volumineuses qu'int?

Merci.

50
user593062

Utilisez COUNT_BIG

SELECT COUNT_BIG(*) FROM Similarities WHERE T1Similarity = 0 OR T2Similarity = 0
102
pstrjds
  SELECT COUNT_BIG(*) FROM Similarities WHERE T1Similarity = 0 OR T2Similarity = 0
17