私はSQLでテーブルを持っています。という名前の列CarMakes
があり、次の内容があります。
Mercedes, BMW
Range Rover
Mazda, Toyota, Honda
CarMakes
各行の数値を返す方法を知りたいです。
返される値は、それぞれ 2、1、および 3 です。
私はSQLでテーブルを持っています。という名前の列CarMakes
があり、次の内容があります。
Mercedes, BMW
Range Rover
Mazda, Toyota, Honda
CarMakes
各行の数値を返す方法を知りたいです。
返される値は、それぞれ 2、1、および 3 です。
これはMySQLベースの回答であるため、他のものを使用している場合、あなたのケースには不適切かもしれません. これは、値がカンマで区切られ、同じ列にあることを前提としています(かなりの仮定:)):
SELECT car, (LENGTH(car)-LENGTH(REPLACE(car, ',', ''))+1) AS 'Counts'
FROM CarMakes
これはどこかで問題が発生すると確信していますが、状況にランダムなコンマが含まれていない場合は機能する可能性があります。ここで SQLFiddle を確認できます。
T-SQL / MS SQL Server を想定すると、次の 2 つのオプションがあります。
SELECT COUNT(CarMakes), CarMakes FROM cartable ORDER BY CarMakes ASC