【问题标题】:Count of distinct in MySqlMySql中的不同计数
【发布时间】:2016-05-09 15:56:45
【问题描述】:

我想计算 mysql 中的不同值。

select 
    bank_sample_map.sample_track_id,sample_details.sample_id,order_number, order_details.sample_detail_id 
from 
    bank_sample_map 
left join 
    sample_details on bank_sample_map.sample_track_id = sample_details.sampletrack_id 
left join 
    order_details on order_details.sample_detail_id = sample_details.sample_id 
where 
    sample_detail_id = 559662

返回

使用 distinct 查询时,返回 2 行

select 
    DISTINCT(bank_sample_map.sample_track_id),sample_details.sample_id,order_number, order_details.sample_detail_id 
from 
    bank_sample_map 
left join 
    sample_details on bank_sample_map.sample_track_id = sample_details.sampletrack_id 
left join 
    order_details on order_details.sample_detail_id = sample_details.sample_id 
where 
    sample_detail_id = 559662

当我尝试计数时,它返回 6。但我需要计数 2。

【问题讨论】:

  • 你数的怎么样?

标签: mysql join count distinct


【解决方案1】:

作为第二个示例运行您的查询,然后使用内置的计数函数来查看您有多少行。

mysqli:

  if ($result = $mysqli->(" query in here")) {
    /* determine number of rows result set */
    $row_cnt = $result->num_rows;
    /* close result set */
    $result->close();
  }

php mysqli num rows documentation

【讨论】:

  • 你怎么知道他在用PHP?
  • 非常好;我可以发誓我正在查看 php 问题。
【解决方案2】:

我找到了一个查询,它返回 2。

select 
    count(distinct(order_number)),bank_sample_map.sample_track_id,sample_details.sample_id, order_details.sample_detail_id 
from 
    bank_sample_map 
left join 
    sample_details on bank_sample_map.sample_track_id = sample_details.sampletrack_id 
left join 
    order_details on order_details.sample_detail_id = sample_details.sample_id 
where 
    sample_detail_id = 559662

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    相关资源
    最近更新 更多