Ben bir MySQL sorgu yapabilirsiniz?

4 Cevap php

Hi I have a table with two columns:

column A    column B
  1             2
  1             2 
  2             1

Ben olanları toplam dönmek istiyor = ikiler = 3 3 toplam

Ben gelip iyi böylece gibi iki sorgularını:

SELECT sum(CASE WHEN columnA =1 THEN 1 ELSE 0  END ) 
     + sum(CASE WHEN columnB =1 THEN 1 ELSE 0 END ) 

SELECT sum(CASE WHEN columnA =2 THEN 1 ELSE 0  END ) 
     + sum(CASE WHEN columnB =2 THEN 1 ELSE 0 END ) 

Can this be done in one query? Thanks

4 Cevap

SELECT SUM(IF(columnA=1, 1, 0) + IF(columnB=1, 1, 0)) as ones,
    SUM(IF(columnA=2, 1, 0) + IF(columnB=2, 1, 0)) as twos
FROM myTable;

C.

Eğer 2 satır olarak veya bir satırda 2 değer olarak bunu yapmak istiyorsanız belirtmek vermedi.

İki satır sadece birlikte sendika her sütun tüm değerleri ve birliğin sonucu karşı değeri ile (1) grup saymak (biraz açıktır, bu yüzden ben bir satır yapmak istiyorum kabul edeceğiz.

Yalnızca 1s veya 2s varsa, bu basit:

SELECT SUM(A+B-2) 'twos', SUM(4-A-B) 'ones' FROM myTable

Bir sorguda her şeyi almak için, ben böyle bir şey denemek istiyorum.

SELECT Result.Val, COUNT(Result.Val) AS Count
FROM (
    SELECT ColumnA AS Val
    FROM TableName

    UNION

    SELECT ColumnB AS Val
    FROM TableName
) AS Result
GROUP BY Result.Val

Genel olarak, bunu gibi şeyler saymak olacaktır:

SELECT columnA, COUNT(*) FROM myTable
GROUP BY columnA

Columna tüm farklı değerlerin sayısını alır.