SQL使用distinct计算总行数?

SQL使用distinct计算总行数?,sql,mysql,group-by,distinct,Sql,Mysql,Group By,Distinct,我需要一个复杂的查询: 考虑下表: ID - field1 - field2 ================= 1 a 10 2 a 10 3 a 20 4 b 20 我需要一个按字段1和字段2分组的总记录计数的查询。我的意思是我需要这个结果: field - count ================== field1 a - 3 field1 b - 1 field2 1

我需要一个复杂的查询:

考虑下表:

ID - field1 - field2
 =================
 1     a        10
 2     a        10
 3     a        20
 4     b        20
我需要一个按字段1和字段2分组的总记录计数的查询。我的意思是我需要这个结果:

field      - count
==================
field1 a   - 3
field1 b   - 1
field2 10  - 2
field2 20  - 2
也许我需要对每个需要计数的字段进行两次查询

 SELECT field1, COUNT( * ) FROM t1 GROUP BY field1
?


感谢您的建议

您确实需要两个选择,但您可以让它们返回一个结果集,如下所示。请注意,您需要强制转换第一个选择,以便值与第二个选择中的文本字段兼容:

 SELECT 'field1' AS FieldName, CAST(field1 AS CHAR) AS FieldValue, COUNT(*) AS Count 
   FROM table GROUP BY field1
 UNION ALL 
 SELECT 'field2' AS FieldName, field2 AS FieldValue, COUNT(*) AS Count 
   FROM table GROUP BY field2