[英]Displaying duplicates and non-duplicates data from column in database - laravel
在我的數據庫中,我有一個清單,這些清單是我希望收集並為其生成餅圖的客戶收集的響應。 (例如Google表單)。
在我的數據庫中,我得到的響應是相同的,其他不像下面這樣
Client 1 Client 2 Client
Yes Yes No
所以在上面的列中,我有Yes(2) and No(1)
。 我想收集,計算和顯示我的查詢響應,如下所示
Yes : 2 , No: 1
但是下面的代碼
public function answers_chart(Survey $survey)
{
$response = DB::select( DB::raw(" select * from (
SELECT questionnaire_id, COUNT(answer) as e_count
FROM Answer
GROUP BY answer
)a where a.e_count > 1));
}
我得到如下響應,這意味着它只計算Yes
[{"e_count":2}]
我如何實現這樣的目標?
表
公共功能up()
{
Schema::create('Answer', function (Blueprint $table) {
$table->increments('id');
$table->integer('question_id');
$table->integer('questionnaire_id');
$table->string('answer');
$table->timestamps();
});
}
可能使用案例陳述會更好,例如
SELECT
COUNT(CASE WHEN answer = '1' THEN 1 END) AS yes,
COUNT(CASE WHEN answer= '0' THEN 1 END) AS no
FROM ANSWER
嘗試這個:
Model::select(DB::raw("COUNT(CASE WHEN answer = 'Yes' THEN 1 END) AS e_count"))->first(); // Eloquent approach
DB::table('answer')->select(DB::raw("COUNT(CASE WHEN answer = 'Yes' THEN 1 END) AS e_count"))->first(); // Query Builder approach
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.